// function jsonClone(e) {
//     return JSON.parse(JSON.stringify(e))
// }
// function isInArray(e, t) {
//     return $.inArray(t, e) >= 0
// }
// function html2Escape(e) {
//     return e.replace(/[<>&"]/g, function(e) {
//         return {
//             "<": "&lt;",
//             ">": "&gt;",
//             "&": "&amp;",
//             '"': "&quot;"
//         }[e]
//     })
// }
// function str2Num(e) {
//     return e ? parseInt(e) : 0
// }
// function $$$(e) {
//     return document.getElementById(e)
// }
// function isURL(e) {
//     return !!new RegExp("^((https|http|ftp|rtsp|mms)?://)?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?(([0-9]{1,3}.){3}[0-9]{1,3}|([0-9a-z_!~*'()-]+.)*([0-9a-z][0-9a-z-]{0,61})?[0-9a-z].[a-z]{2,6})(:[0-9]{1,4})?((/?)|(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$").test(e)
// }
// function isHttpUrl(e) {
//     return !!e && !(!e.startWith("http://") && !e.startWith("https://"))
// }
// function HashTable() {
//     var e = this
//         , t = {}
//         , i = 0
//         , n = []
//         , a = [];
//     e.checkKey = function(e) {
//         if ("string" == typeof e && "" !== e.trim || "number" == typeof e || "boolean" == typeof e)
//             return e;
//         throw new Error("Key必须是一个存在值的基本类型，并且值不可为空")
//     }
//         ,
//         e.add = function(o, r) {
//             return o = this.checkKey(o),
//                 t[o] = r,
//                 i++,
//             -1 == n.indexOf(o) && n.push(o),
//             -1 == a.indexOf(r) && a.push(r),
//                 e
//         }
//         ,
//         e.remove = function(o) {
//             if (o = this.checkKey(o),
//                 t.hasOwnProperty(o)) {
//                 var r = t[o];
//                 delete t[o],
//                 --i < 0 && (i = 0);
//                 var s = n.indexOf(o)
//                     , l = a.indexOf(r);
//                 -1 != s && n.splice(s, 1),
//                 -1 != l && a.splice(l, 1)
//             }
//             return e
//         }
//         ,
//         e.clear = function() {
//             for (var i = 0; i < n.length; i++)
//                 t.hasOwnProperty(n[i]) && delete t[n[i]];
//             return n.splice(0, n.length),
//                 a.splice(0, a.length),
//                 e
//         }
//         ,
//         e.count = function() {
//             return i
//         }
//         ,
//         e.contains = function(e) {
//             return -1 !== n.indexOf(e)
//         }
//         ,
//         e.containsKey = function(e) {
//             return -1 !== n.indexOf(e)
//         }
//         ,
//         e.containsValue = function(e) {
//             return -1 !== a.indexOf(e)
//         }
//         ,
//         e.getKeys = function() {
//             return n.concat([])
//         }
//         ,
//         e.getValues = function() {
//             return a.concat([])
//         }
//         ,
//         e.getValue = function(e) {
//             if (t.hasOwnProperty(e))
//                 return t[e]
//         }
//         ,
//         e.each = function(e) {
//             if ("function" == typeof e)
//                 for (var i = 0; i < n.length; i++) {
//                     var a = n[i]
//                         , o = t[a];
//                     if (!1 === e.call({
//                         key: a,
//                         value: o
//                     }, a, o))
//                         break
//                 }
//         }
//         ,
//         e.toList = function() {
//             for (var e = [], i = 0; i < n.length; i++) {
//                 var a = n[i]
//                     , o = t[a];
//                 e.push({
//                     key: a,
//                     value: o
//                 })
//             }
//             return e
//         }
// }
// function insertAtCursor(e, t) {
//     if (document.selection)
//         e.focus(),
//             sel = document.selection.createRange(),
//             sel.text = t,
//             sel.select();
//     else if (e.selectionStart || "0" == e.selectionStart) {
//         var i = e.selectionStart
//             , n = e.selectionEnd
//             , a = e.scrollTop;
//         e.value = e.value.substring(0, i) + t + e.value.substring(n, e.value.length),
//         a > 0 && (e.scrollTop = a),
//             e.focus(),
//             e.selectionStart = i + t.length,
//             e.selectionEnd = i + t.length
//     } else
//         e.value += t,
//             e.focus()
// }
// function encodeHtml(e) {
//     return "string" != typeof e ? e : e.replace(REGX_HTML_ENCODE, function(e) {
//         var t = e.charCodeAt(0)
//             , i = ["&#"];
//         return t = 32 == t ? 160 : t,
//             i.push(t),
//             i.push(";"),
//             i.join("")
//     })
// }
// function decodeHtml(e) {
//     return "string" != typeof e ? e : e.replace(REGX_HTML_DECODE, function(e) {
//         var t = HTML_ENCODE[e];
//         if (void 0 === t) {
//             var i = e.match(/\d{1,}/);
//             if (i) {
//                 var n = i[0];
//                 n = 160 === n ? 32 : n,
//                     t = String.fromCharCode(n)
//             } else
//                 t = e
//         }
//         return t
//     })
// }
// function isJsonObjEmpty(e) {
//     for (var t in e)
//         if (e.hasOwnProperty(t))
//             return !1;
//     return !0
// }
// function doAjax(e, t, i, n) {
//     $.ajax({
//         url: homeUrl + e,
//         cache: !1,
//         type: "post",
//         data: t,
//         async: !0,
//         traditional: !0,
//         dataType: "json",
//         success: function(e) {
//             alertRsp(e, i, n)
//         },
//         error: function(e, t, i) {
//             systemErr()
//         }
//     })
// }
// function doAjaxCallBackPost(e, t, i, n) {
//     doAjaxCallBack(e, t, i, "post", n)
// }
// function doAjaxCallBack(e, t, i, n, a) {
//     doAjaxCallBackFullUrl(homeUrl + e, t, i, n, a)
// }
// function doAjaxCallBackFullUrl(e, t, i, n, a) {
//     "undefine" == a && (a = !0),
//         $.ajax({
//             url: e,
//             cache: !1,
//             type: n || "get",
//             data: t,
//             async: a,
//             traditional: !0,
//             dataType: "json",
//             success: function(e) {
//                 i(e)
//             },
//             error: function(e, t, i) {
//                 systemErr()
//             }
//         })
// }
// function doAjaxCallBackWithParam(e, t, i, n, a, o, r, s) {
//     "undefine" == a && (a = !0),
//         $.ajax({
//             url: e,
//             cache: !1,
//             type: n || "get",
//             data: t,
//             async: a,
//             traditional: !0,
//             dataType: "json",
//             success: function(e) {
//                 i(e, o, r, s)
//             },
//             error: function(e, t, i) {
//                 systemErr()
//             }
//         })
// }
// function doNothing() {}
// function systemErr() {
//     alert("操作异常，请稍候再试！")
// }
// function alertRsp(e, t, i) {
//     1 == e.rs ? (showMsgSuc(t),
//     i && reloadWin()) : bootbox.alert(e.msg)
// }
// function afterOperationCommon(e) {
//     1 == e.rs ? showMsgSuc("操作成功！") : bootbox.alert(e.msg)
// }
// function showMsgErr(e, t) {
//     showMsg(e, "error", t)
// }
// function showMsgSuc(e, t) {
//     showMsg(e, "success", t)
// }
// function showSaveSuc() {
//     showMsgSuc("保存成功！")
// }
// function showMsg(e, t, i) {
//     var n, a = $(".message-prompt");
//     t || (t = "success"),
//         clearTimeout(n),
//     e && ("error" == t ? a.addClass("error") : a.removeClass("error"),
//         a.empty().append("<span>" + e + "</span>").stop().css({
//             top: "-50px"
//         }).show().animate({
//             top: "0"
//         }, 50),
//         n = setTimeout(function() {
//             a.hide()
//         }, 3e3)),
//     i && $("#" + i).focus()
// }
// function showBoxContent(e, t, i) {
//     var n = '<div id="' + e + '" class="modal fade" role="dialog"><div class="modal-dialog"><div class="modal-content"><div class="modal-body modal-body-alert"><div class="modal-alert-title">' + t + '</div> <i class="icon icon-alert-close" data-dismiss="modal"></i>' + i + "</div></div></div></div>";
//     $("#" + e).length > 0 && $("#" + e).remove(),
//         $("body").append(n),
//         $("#" + e).modal()
// }
// function reloadWin() {
//     window.location.href = window.location.href,
//         window.location.reload
// }
// function reloadOpener() {
//     opener && opener.location && opener.location.reload()
// }
// function addDisable(e) {
//     e && e.attr("disabled", "disabled")
// }
// function enable(e) {
//     e && e.removeAttr("disabled")
// }
// function systemErr() {
//     alert("系统异常，请稍候再试！")
// }
// function checkRadio(e, t) {
//     $("input[type='radio'][name='" + e + "'][value='" + t + "']").prop("checked", !0)
// }
// function getCheckRadio(e, t) {
//     return t ? $("input[type='radio'][name='" + e + "']:checked", t).val() : $("input[type='radio'][name='" + e + "']:checked").val()
// }
// function getRadioCheckObjy(e, t) {
//     return t ? $("input[type='radio'][name='" + e + "']:checked", t) : $("input[type='radio'][name='" + e + "']:checked")
// }
// function getCheckBoxOne(e, t, i) {
//     var n = getCheckBox(e, i)
//         , a = t;
//     return n && n.length > 0 && (a = n[0]),
//         a
// }
// function getCheckBox(e, t) {
//     var i = []
//         , n = [];
//     return n = t ? $("input[type='checkbox'][name='" + e + "']:checked", t) : $("input[type='checkbox'][name='" + e + "']:checked"),
//         $.each(n, function() {
//             i.push($(this).val())
//         }),
//         i
// }
// function isCheckedById(e) {
//     return $("#" + e).prop("checked")
// }
// function setCheckBoxById(e, t) {
//     t ? $("#" + e).prop("checked", !0) : $("#" + e).attr("checked", !1)
// }
// function dealCheckBox(e, t) {
//     t ? $("input[type='checkbox'][name='" + e + "']").prop("checked", !0) : $("input[type='checkbox'][name='" + e + "']").attr("checked", !1)
// }
// function setCheckBox(e, t) {
//     $("input[type='checkbox'][name='" + e + "'][value='" + t + "']").prop("checked", !0)
// }
// function setCheckBoxGroup(e, t) {
//     if (t && t.length && t.length > 0)
//         for (var i = 0, n = t.length; i < n; i++)
//             $("input[type='checkbox'][name='" + e + "'][value='" + t[i] + "']").prop("checked", !0)
// }
// function showChangeByClass(e, t) {
//     e == t ? $("." + t).css("display", "block") : $("." + t).css("display", "none")
// }
// function showChangeById(e, t) {
//     e == t ? $("#" + e).css("display", "block") : $("#" + e).css("display", "none")
// }
// function genOption(e, t) {
//     return '<option value="' + e + '">' + t + "</option>"
// }
// function clearForm(e) {
//     $(":input", "#" + e).not(":button, :submit, :reset, :hidden").val("").removeAttr("checked").removeAttr("selected")
// }
// function genFormValues(e) {
//     return $("#" + e).serialize()
// }
// function launchFullscreen(e) {
//     e.requestFullscreen ? e.requestFullscreen() : e.mozRequestFullScreen ? e.mozRequestFullScreen() : e.webkitRequestFullscreen ? e.webkitRequestFullscreen() : e.msRequestFullscreen && e.msRequestFullscreen()
// }
// function exitFullscreen() {
//     document.exitFullscreen ? document.exitFullscreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.webkitExitFullscreen && document.webkitExitFullscreen()
// }
// function dealField(e) {
//     $tr = $(e).closest("tr")[0],
//         switchFieldByTr($tr),
//         hideHtmlConfig()
// }
// function switchFieldByTr(e) {
//     $currTr = e,
//         currFieldConfig = getCurrFieldConfig(),
//         hlCurrTr(e),
//         initTrShow(e),
//         switchMutiPager(!1)
// }
// function genFieldArray() {
//     var e = [];
//     for (var t in allFieldConfigs) {
//         var i = allFieldConfigs[t];
//         e.push(i)
//     }
//     return e
// }
// function saveModalDataAllLocal() {
//     saveDataDealValue(),
//         saveDefaultValue(),
//         saveFileDown(),
//         saveFileStorage(),
//         saveReplaces(),
//         saveDataDealAdv(),
//         saveRegex(),
//         saveXpath(),
//         saveMutiPagrValue(),
//         saveCurrFieldConfig(),
//         resetFieldIconCurr(),
//         initCurrTrShow()
// }
// function saveAll(e, t) {
//     if (genFieldArray().length <= 0)
//         return bootbox.alert("未定义字段，至少需要一个字段！"),
//             !1;
//     var i = $("#ajaxPage").prop("checked")
//         , n = !1
//         , a = $("#saveUrlToPagerRule");
//     a && (n = a.prop("checked")),
//         saveCurrFieldConfig();
//     var o = {
//         fieldArr: JSON.stringify(genFieldArray()),
//         pageType: parseInt($("#pageType").val()),
//         taskId: taskId,
//         url: $("#pageUrl").val(),
//         ajaxPage: i,
//         saveUrlToPagerRule: n,
//         fileDownConfig: JSON.stringify(fileDownConfig),
//         storageType: storageType,
//         fileConfigId: fileConfigId
//     };
//     return void 0 === t && (t = !0),
//         $.ajax({
//             url: getSaveExtratorUrl(),
//             type: "post",
//             data: o,
//             async: t,
//             traditional: !0,
//             dataType: "json",
//             success: function(t) {
//                 1 == t.rs ? (showSaveSuc(),
//                 e && window.close()) : bootbox.alert(t.msg)
//             },
//             error: function(e, t, i) {
//                 systemErr()
//             }
//         }),
//         !0
// }
// function hideHtmlConfig() {
//     isConfiger && (currFieldConfig && currFieldConfig.useHtml ? $(".js-show-for-html").css("display", "block") : $(".js-show-for-html").css("display", "none"))
// }
// function setPageType(e) {
//     pageType = e
// }
// function useLinkAction(e) {
//     if (currFieldConfig.selectors) {
//         var t = $(e).prop("checked");
//         t && (currFieldConfig.useImg = !1,
//             dealCheckBox("useImg", !1)),
//             useHtmlAction(t),
//             t ? changeCurrValueType("attr", "href") : changeCurrValueType("text", "")
//     }
// }
// function mutiValueAction(e) {
//     var t = $(e).prop("checked");
//     t && (setCheckBox("groupSelect", !0),
//         currFieldConfig.groupSelect = t,
//         saveCurrFieldConfig(),
//         runIfrFun("setGroupSelect", t))
// }
// function useImgAction(e) {
//     var t = $(e).prop("checked");
//     currFieldConfig.useImg = t,
//     t && (setCheckBox("useHtml", !0),
//         dealCheckBox("useLink", !1),
//         currFieldConfig.useLink = !t,
//         currFieldConfig.useHtml = t,
//         saveCurrFieldConfig()),
//         useHtmlAction(t)
// }
// function delaTxtAction(e) {
//     currFieldConfig.selectors && ($(e).prop("checked") ? (currFieldConfig.delaTxt = 1,
//         dealCheckBox("dela", !1),
//         currFieldConfig.dela = 0) : currFieldConfig.delaTxt = 0)
// }
// function delaAction(e) {
//     currFieldConfig.selectors && ($(e).prop("checked") ? (currFieldConfig.dela = 1,
//         dealCheckBox("delaTxt", !1),
//         currFieldConfig.delaTxt = 0) : currFieldConfig.dela = 0)
// }
// function showAllData() {
//     $("#modal-table-data").modal("show"),
//         removeDataTableTrs(),
//         genAllData()
// }
// function genAllData() {
//     var e = "";
//     for (var t in allFieldConfigs)
//         e += genDataTableTr(allFieldConfigs[t]);
//     e && $("#all-data-table tbody").append(e)
// }
// function genDataTableTr(e) {
//     for (var t = "<tr><td>" + e.name + "</td>", i = genExtractValueArr(extractElementsCh(e.selectors), e.useHtml, e.useLink), n = "", a = 0, o = i.length; a < o; a++)
//         i[a] && i[a].trim() && (n += processData(i[a], e),
//         a < o - 1 && (n += "<br>"));
//     return t = t + "<td>" + n + "</td></tr>"
// }
// function removeDataTableTrs() {
//     var e = $("#all-data-table>tbody tr");
//     e[0] && e.empty()
// }
// function resetPageSelect() {
//     bootbox.confirm("确定要重置已点选的内容吗？（只影响当前字段：" + getCurrFieldName() + "）", function(e) {
//         e && clearAndReset()
//     })
// }
// function clearAndReset() {
//     clearRow(),
//         clearIframe(),
//     pageType == listType && (currFieldConfig.useLink = !0);
//     var e = currFieldConfig.name;
//     "content" != e && "内容" != e || (currFieldConfig.useHtml = !0,
//         currFieldConfig.valueType = "html",
//         currFieldConfig.dela = 2),
//         saveCurrFieldConfig(),
//         initFieldConfigShow(currFieldConfig),
//         resetFieldIconCurr()
// }
// function initStart() {
//     initAllFromServer(),
//         currFieldConfig ? setXpathValue(currFieldConfig.selectors) : addNewRow(),
//         pageType == listType ? dealListPage() : pageType == detailType && dealDetailPage(),
//         $("#pageType").val(pageType),
//     isConfiger || loadUrl()
// }
// function initCurrTrShow() {
//     initTrShow($currTr)
// }
// function callByIframeInit() {
//     return $currTr && (initTrShow($currTr),
//         focusInput($currTr),
//         hlCurrTr($currTr),
//         initCounterAfterIframe()),
//         !0
// }
function dealListPage() {
    hiddenElement("required-lb", !0),
        hiddenElement("useHtml-lb", !0),
        hiddenElement("mutiValue-lb", !0),
        hiddenElement("useImg-lb", !0),
        hiddenElement("delaTxt-lb", !0),
        hiddenElement("dela-lb", !0),
        hiddenElement("mutiPage-lb", !0),
        hiddenElement("fields-table", !0)
}
function dealDetailPage() {
    hiddenElement("useLink-lb", !0),
        hiddenElement("groupSelect-lb", !0)
}
// function dealGroupSelect(e) {
//     var t = $(e).prop("checked");
//     currFieldConfig.groupSelect = t,
//         saveCurrFieldConfig(),
//         runIfrFun("setGroupSelect", t)
// }
// function checkPageType() {
//     var e = genFieldArray().length;
//     if (pageType == listType) {
//         if (e >= 1)
//             return bootbox.alert("列表页只能添加一个字段,如需多字段，请使用详情页配置"),
//                 !1
//     } else if (pageType == detailType && e >= 30)
//         return bootbox.alert("详情页只能添加30字段,如需更多字段，请反馈给我们！"),
//             !1;
//     return !0
// }
// function clearRow() {
//     var e = currFieldConfig.name
//         , t = currFieldConfig.id
//         , i = jsonClone(fieldConfigObj);
//     i.name = e,
//         i.id = t,
//         currFieldConfig = i,
//         setXpathValue(""),
//         removeFieldValues(),
//         saveCurrFieldConfig(),
//         initFieldConfigShow(i),
//         showMsgSuc("字段：" + e + "：配置清除成功！")
// }
// function removeFieldValues() {
//     var e = $("#data-table>tbody tr");
//     e[0] && e.empty()
// }
// function getPageType() {
//     return pageType
// }
// function getUseLink() {
//     return !!currFieldConfig && currFieldConfig.useLink
// }
// function saveSelect(e, t) {
//     pageType == listType && !extratorEdited && currFieldConfig && currFieldConfig.selectors && e ? bootbox.confirm('是否重新选择？只需在页面中点击"两个不同链接"', function(i) {
//         i ? clearAndReset() : saveSelectDao(e, t)
//     }) : mutiPagerSwitch ? savaSelectorPage(e, t) : saveSelectDao(e, t),
//         extratorEdited = !0
// }
// function savaSelectorPage(e, t) {
//     currFieldConfig.pageSelector = e,
//         setPageSelector(e),
//         saveCurrFieldConfig(),
//         e ? showFieldValue(genExtractValueArrForPage(t)) : removeFieldValues()
// }
// function genAndShowPageExtractValue(e) {
//     showFieldValue(genExtractValueArrForPage(extractElementsCh(e)))
// }
// function genExtractValueArrForPage(e) {
//     if (!e || 0 == e.length)
//         return [];
//     for (var t = [], i = 0, n = e.length; i < n; i++) {
//         var a = "";
//         isInArray(t, a = genLinkHrefShowValue(e[i])) ? a = "" : t.push(a)
//     }
//     return t
// }
// function saveSelectDao(e, t) {
//     if ($.isEmptyObject(allFieldConfigs) && (addNewRow(),
//         locationIfrSelector(e)),
//         currFieldConfig.selectors = e,
//         setXpathValue(e),
//         saveCurrFieldConfig(),
//         e) {
//         var i = genExtractValueArr(t, currFieldConfig.useHtml, currFieldConfig.useLink);
//         saveCurrFieldConfig(),
//             showFieldValue(i)
//     } else
//         removeFieldValues();
//     initFieldConfigShow(currFieldConfig),
//         resetFieldIconCurr()
// }
// function setSelectorValue(e) {
//     setConfigFieldValue("selectors", e)
// }
// function setConfigFieldValue(e, t) {
//     var i = getCurrFieldConfig();
//     return !i && e ? "" : (i[e] = t,
//         i)
// }
// function getConfigFieldValue(e) {
//     var t = getCurrFieldConfig();
//     if (t && e)
//         return t[e]
// }
// function addNewRowIfr() {
//     checkPageType() && addNewRow()
// }
// function hiddenCloneTr() {
//     "#trClone".css("display", "none")
// }
// function delAllRows() {
//     bootbox.confirm("确定要删除全部字段吗?", function(e) {
//         e && ($("#" + fieldsTableId + ">tbody tr:not(:first)").each(function() {
//             $(this).remove()
//         }),
//             allFieldConfigs = {},
//             $currTr = "",
//             currFieldConfig = null,
//             setTitle(""),
//             removeFieldValues(),
//             setEmptyConfig(),
//             clearIframe())
//     })
// }
// function setFieldValue(e) {
//     $("#fieldValue").text(e)
// }
// function getFieldValue() {
//     return $("#fieldValue").text()
// }
// ]
// function dealFieldBlur(e) {
//     $tr = e.parentNode.parentNode;
//     var t = $(e).val();
//     setTitle(t),
//         currFieldConfig.name = t,
//         saveCurrFieldConfig()
// }
// function saveCurrFieldConfig() {
//     currFieldConfig.selectors = $("#xpathValue").val(),
//         saveCurrHtmlEles(),
//         allFieldConfigs[currFieldConfig.id] = currFieldConfig
// }
// function setCurrFieldConfig(e) {
//     currFieldConfig = e
// }
// function setCurrTr(e) {
//     $currTr = e
// }
// function hlCurrTr(e) {
//     $("#fields-table>tbody tr").removeClass(trHlClass),
//         $(e).addClass(trHlClass)
// }
// function resetValueAndPageSelector() {
//     showFieldValue(extractAndProcess(extractElementsCh(currFieldConfig.selectors), currFieldConfig)),
//         showFieldFinalData(),
//         clearIframe(),
//         locationIfrSelector(currFieldConfig.selectors)
// }
// function addNewRowCommon(e, t) {
//     for (var i in allFieldConfigs)
//         if (allFieldConfigs[i].name == e)
//             return showMsgErr("字段名已存在，不能再添加同名字段！"),
//                 !1;
//     var n = {};
//     (n = jsonClone(fieldConfigObj)).name = e,
//     t && (n.useHtml = !0,
//         n.valueType = "html");
//     var a = "";
//     "description" == e ? (a = descriptionSelector,
//         n.selectors = descriptionSelector,
//         n.isMeta = !0,
//         n.valueType = "attr",
//         n.attrName = "content") : "keywords" == e && (a = keywordsSelector,
//         n.isMeta = !0,
//         n.selector = keywordsSelector,
//         n.valueType = "attr",
//         n.attrName = "content");
//     var o = addInitRow(n);
//     $currTr = o,
//         upSetConfigMap(o),
//         currFieldConfig = n,
//         $("#xpathValue").val(a),
//         saveCurrFieldConfig(),
//         initFieldConfigShow(currFieldConfig),
//         setFieldName(currFieldConfig.name, o),
//         focusInput(o),
//         hlCurrTr(o),
//         clearIframe()
// }
// function addNewRow() {
//     var e = addRow();
//     $currTr = e,
//         upSetConfigMap(e),
//         (currFieldConfig = getCurrFieldConfig()).name = getFieldName(e),
//         currFieldConfig.selectors = "",
//         $("#xpathValue").val(""),
//     pageType == listType && (currFieldConfig.useLink = !0),
//         saveCurrFieldConfig(),
//         initFieldConfigShow(currFieldConfig),
//         setFieldName(currFieldConfig.name, e),
//         focusInput(e),
//         hlCurrTr(e),
//         clearIframe()
// }
// function copyRow() {
//     if ($currTr) {
//         var e = jsonClone(currFieldConfig)
//             , t = addRow()
//             , i = getRowFieldId(t);
//         setFieldConfigObjCommon(t, e),
//             allFieldConfigs[i] = e
//     } else
//         bootbox.alert("请选择要复制的字段，鼠标点一下字段名输入框即可")
// }
// function addInitRow(e) {
//     var t = addRow();
//     setFieldName(e.name, t);
//     var i = getRowFieldId(t)
//         , n = getRowFieldId(t);
//     return e.id = n,
//         allFieldConfigs[i] = e,
//         resetFieldIcon(t),
//         t
// }
// function upSetConfigMap(e) {
//     var t = getRowFieldId(e)
//         , i = genFieldConfigObj(e);
//     return allFieldConfigs[t] = i,
//         i
// }
// function addRow() {
//     var e = initTemplate("fields-table");
//     return $("#fields-table>tbody tr:last").after(e),
//         e
// }
// function removeRow(e) {
//     $tr = $(e).closest("tr")[0];
//     var t = getRowFieldId($tr);
//     delete allFieldConfigs[t],
//         removeFieldValues(),
//         setToPreOrNextTr($tr),
//         $tr.remove()
// }
// function setToPreOrNextTr(e) {
//     var t = $(e).prev();
//     if (t[0] && !t.attr("id"))
//         $currTr = t,
//             currFieldConfig = getExistFieldConfig(t),
//             initTrShow(t);
//     else {
//         var i = $(e).next();
//         i[0] && !i.attr("id") ? ($currTr = i,
//             currFieldConfig = getExistFieldConfig(i),
//             initTrShow(i)) : ($currTr = "",
//             currFieldConfig = {},
//             setEmptyConfig(),
//             clearIframe())
//     }
// }
// function getRowFieldId(e) {
//     return $("input[name='rowFieldId']", e).val()
// }
// function getFieldName(e) {
//     return $("input[name='fieldName']", e)[0].value
// }
// function setFieldName(e, t) {
//     $("input[name='fieldName']", t)[0].value = e
// }
// function focusInput(e) {
//     $("input[name='fieldName']", $(e))[0].focus()
// }
// function setEmptyConfig(e) {
//     initFieldConfigShow(JSON.parse(JSON.stringify(fieldConfigObj)))
// }
// function testAllCssQuery() {
//     sendCssQuery(genRequestJsonString($("#testTable tr.quoteTr")))
// }
// function testThisCssQuery(e) {
//     var t = e.parentNode.parentNode
//         , i = $("input,select,radio", t).serializeArray()
//         , n = []
//         , a = {};
//     $.each(i, function(e, t) {
//         a[t.name] = t.value
//     }),
//         n.push(a),
//         sendCssQuery($.toJSON(n))
// }
// function sendCssQuery(e) {
//     var t = $("#url").val();
//     if (!t)
//         return showMsgErr("Please Input Url !"),
//             void $("#url").focus();
//     var i = {
//         url: t,
//         jsoupSelectors: e
//     };
//     $.ajax({
//         url: basePath + "jsoupTester",
//         data: i,
//         async: !0,
//         success: function(e) {
//             e.rs ? (showMsgSuc("Success"),
//                 treeEditor.set(jQuery.parseJSON(e.data))) : showMsgErr(e.msg)
//         }
//     })
// }
// function initTemplate(e) {
//     var t = $("#" + e + ">tbody>tr:first").clone(!0, !0);
//     return resetTemplate(t),
//         t
// }
// function resetTemplate(e) {
//     e.removeAttr("style"),
//         e.removeAttr("id"),
//         $("input:text", e).val("");
//     var t = "field-id-" + ++idOrder
//         , i = "field_" + idOrder;
//     $("input[name='rowFieldId']", e).val(t),
//         $("input[name='fieldName']", e)[0].value = i,
//         $("input[name='fieldName']", e).attr("value", i)
// }
//
// function resetValueAndPageSelector() {
//     showFieldValue(extractAndProcess(extractElementsCh(currFieldConfig.selectors), currFieldConfig)),
//         showFieldFinalData(),
//         clearIframe(),
//         locationIfrSelector(currFieldConfig.selectors)
// }
//
// function resetFieldIconCurr() {
//     resetFieldIcon($currTr)
// }
// function resetFieldIcon(e) {
//     var t = iconSuc
//         , i = getRowFieldId(e)
//         , n = allFieldConfigs[i];
//     if (!n)
//         return showMsgErr("获取不到配置字段！"),
//             !1;
//     var a = $("div.field-status>i", e)
//         , o = "";
//     n.selectors || (t = iconWarn,
//         o = "未配置xpath规则或随机值"),
//     n.isMeta && (n.selectors.startWith("/html/head") || n.selectors.startWith("//meta")) && (t = iconMeta,
//         o = "该字段页面数据不可见，但服务器可以处理。"),
//     "random" == n.valueType && (t = iconSuc,
//         o = "随机值"),
//         a.attr("class", t),
//         a.attr("data-rel", "tooltip"),
//         a.attr("data-original-title", o)
// }
// function genFieldConfigObj(e) {
//     var t = JSON.parse(JSON.stringify(fieldConfigObj))
//         , i = getFieldName(e)
//         , n = getRowFieldId(e);
//     return t.id = n,
//         t.name = i,
//         t.selectors = "",
//         t
// }
// function setFieldConfigObjCommon(e, t) {
//     var i = getFieldName(e)
//         , n = getRowFieldId(e);
//     return t.id = n,
//         t.name = i,
//         t
// }
// function jsonClone(e) {
//     return JSON.parse(JSON.stringify(e))
// }
// function getCurrFieldConfig() {
//     if ($currTr)
//         return getExistFieldConfig($currTr);
//     alert("请选择要复制的字段，鼠标点一下字段名输入框即可")
// }
// function getExistFieldConfig(e) {
//     if (e) {
//         var t = getRowFieldId(e);
//         return allFieldConfigs[t]
//     }
//     alert("获取指定行配置，行对象为空")
// }
// function getCurrFieldName() {
//     return currFieldConfig && currFieldConfig.name ? currFieldConfig.name : ""
// }
// function getCurrFieldSelectors() {
//     return currFieldConfig && currFieldConfig.selectors ? currFieldConfig.selectors : ""
// }
// function setTitle(e) {
//     e || (e = ""),
//         $(".js-show-fieldName").html("<Strong>" + e + "</Strong>"),
//         runIfrFun("changeFieldName", e)
// }
// function setCheckBox(e, t) {
//     t ? $("#" + e).prop("checked", !0) : $("#" + e).attr("checked", !1)
// }
function hiddenElement(e, t) {
    t ? $("#" + e).hide() : $("#" + e).show()
}
// function genRequestJsonString(e) {
//     var t = [];
//     return e.each(function() {
//         var e = $(this)
//             , i = $("input,select,radio", e).serializeArray()
//             , n = {};
//         $.each(i, function(e, t) {
//             n[t.name] = t.value
//         }),
//             t.push(n)
//     }),
//         $.toJSON(t)
// }
// function cssQueryTest() {
//     var e = $("#url").val();
//     if (!e)
//         return showMsgErr("Please Input Url !"),
//             void $("#url").focus();
//     var t = $("#cssQueryTest").val();
//     if (!t)
//         return showMsgErr("Please Input cssQuery"),
//             void $("#cssQueryTest").focus();
//     var i = {
//         url: e,
//         cssQueryTest: t
//     };
//     $.ajax({
//         url: basePath + "jsoupTester",
//         data: i,
//         async: !0,
//         success: function(e) {
//             e.rs ? (showMsgSuc("Success"),
//                 treeEditor.set(jQuery.parseJSON(e.data))) : showMsgErr(e.msg)
//         }
//     })
// }
// function initFieldConfigShow(e) {
//     e || (e = fieldConfigObj),
//         setTitle(e.name),
//         dealCheckBox("required", e.required),
//         dealCheckBox("delaTxt", e.delaTxt > 0),
//         dealCheckBox("dela", e.dela > 0),
//         dealCheckBox("dela-keeptxt", 2 == e.dela),
//         dealCheckBox("useHtml", e.useHtml),
//         dealCheckBox("cleanHtml", e.cleanHtml),
//         dealCheckBox("keepAlt", e.keepAlt),
//         dealCheckBox("useLink", e.useLink),
//         dealCheckBox("useImg", e.useImg),
//         dealCheckBox("mutiValue", e.mutiValue),
//         dealCheckBox("groupSelect", e.groupSelect),
//         $("#selectors").val(e.selectors),
//         setXpathValue(e.selectors),
//         setPageSelector(e.pageSelector),
//         initMutiPagrValue(),
//         initChangeValueType(e.valueType, e.attrName),
//         initHtmlTags(e.htmlEles)
// }
// function initTrShow(e) {
//     var t = getRowFieldId(e);
//     initFieldConfigShow(allFieldConfigs[t]),
//         resetValueAndPageSelector(),
//         resetFieldIcon(e)
// }
// function launchFullscreen(e) {
//     e.requestFullscreen ? e.requestFullscreen() : e.mozRequestFullScreen ? e.mozRequestFullScreen() : e.webkitRequestFullscreen ? e.webkitRequestFullscreen() : e.msRequestFullscreen && e.msRequestFullscreen()
// }
// function exitFullscreen() {
//     document.exitFullscreen ? document.exitFullscreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.webkitExitFullscreen && document.webkitExitFullscreen()
// }
// function cleanRowAction() {
//     bootbox.confirm("确定要清空该字段配置吗？", function(e) {
//         e && clearRow()
//     })
// }
function cleanHtmlAction(e) {
    currFieldConfig.cleanHtml = !currFieldConfig.cleanHtml,
        dealCheckBox("cleanHtml", currFieldConfig.cleanHtml),
        saveCurrFieldConfig(),
        initCleanHtmlShow(e)
}
function initCleanHtmlShow(e) {
    currFieldConfig.cleanHtml ? $("i", $(e)).removeClass("hide") : $("i", $(e)).addClass("hide")
}
// function modifyRegex() {
//     $("#regex-modal").modal("show"),
//         initRegex()
// }
// function initRegex() {
//     setTitle(currFieldConfig.name),
//         $("#js-fieldValue-regex").html(genCurrFieldValueArr().join("")),
//         $("#js-match-regex").val(currFieldConfig.matchRegex),
//         $("#js-match-replace").val(currFieldConfig.matchReplace),
//         $("#js-matchGp").val(currFieldConfig.matchGp),
//         $("#js-matchSplit").val(currFieldConfig.matchSplit),
//         testRegex(!1),
//         testRegexMatchGp(!1)
// }
// function saveRegex() {
//     currFieldConfig.matchRegex = $("#js-match-regex").val(),
//         currFieldConfig.matchReplace = $("#js-match-replace").val(),
//         currFieldConfig.matchGp = $("#js-matchGp").val(),
//         currFieldConfig.matchSplit = $("#js-matchSplit").val(),
//         saveCurrFieldConfig()
// }
// function saveRegexAndShow() {
//     saveRegex(),
//         initCurrTrShow()
// }
// function testRegex(e) {
//     var t = $("#js-match-regex").val();
//     if (e && !t)
//         return showMsgErr("请填写'将匹配的内容'"),
//             !1;
//     {
//         if (t) {
//             var i = $("#js-match-replace").val()
//                 , n = jsonClone(currFieldConfig);
//             n.matchRegex = t,
//                 n.matchReplace = i;
//             var a = genFinalDatas(currFieldConfig.selectors, n);
//             return $("#js-regex-result").html(genRegexValues(a)),
//                 !0
//         }
//         $("#js-regex-result").html("")
//     }
// }
// function testRegexMatchGp(e) {
//     var t = $("#js-matchGp").val();
//     if (e && !t)
//         return showMsgErr("请填写'正则捕获组'"),
//             !1;
//     {
//         if (t) {
//             var i = $("#js-matchSplit").val()
//                 , n = jsonClone(currFieldConfig);
//             n.matchGp = t,
//                 n.matchSplit = i;
//             var a = genFinalDatas(currFieldConfig.selectors, n);
//             return $("#js-regex-result").html(genRegexValues(a)),
//                 !0
//         }
//         $("#js-regex-result").html("")
//     }
// }
// function setDefRegex(e) {
//     $("#js-match-regex").val($(e).attr("data-regex")),
//         testRegex()
// }
// function setDefRegexGroup(e) {
//     $("#js-matchGp").val($(e).attr("data-regex-group")),
//         $("#js-matchSplit").val($(e).attr("regex-group-splitter")),
//         testRegexMatchGp(!0)
// }
// function genRegexValues(e) {
//     if (!e || 0 == e.length)
//         return "";
//     for (var t = "", i = 0, n = e.length; i < n; i++)
//         t += e[i] + "\n";
//     return t
// }
// function selectConfig(e) {
//     var t = $(e).closest("tr");
//     dealField($(".input-field", t)[0])
// }
// function modifySelector() {
//     $("#xpath-modal").modal("show"),
//         initSelector()
// }
// function initSelector() {
//     $("#js-selectors").text(currFieldConfig.selectors),
//         $("#xpathValue").val(currFieldConfig.selectors),
//         $("#js-fieldValue").html(""),
//         $("#js-fieldValue").html(genCurrFieldValueArr().join("\n"))
// }
// function setXpathValue(e) {
//     $("#xpathValue").val(e)
// }
// function setPageSelector(e) {
//     $("#pageSelector").val(e)
// }
// function showDefaultValue() {
//     $("#default-value-modal").modal("show"),
//         initDefaultValue()
// }
// function initDefaultValue() {
//     $("#js-defaultValue").val(currFieldConfig.defaultValue),
//         $("#imgAttr").val(currFieldConfig.imgAttr),
//         $("#concatDelimiter").val(currFieldConfig.concatDelimiter),
//         $("#valueType").val(currFieldConfig.valueType),
//         $("#attrName").val(currFieldConfig.attrName)
// }
// function initMutiPagrValue() {
//     if (!currFieldConfig)
//         return !1;
//     dealCheckBox("mutiPage", currFieldConfig.mutiPage),
//         showMutiPage(1 == currFieldConfig.mutiPage),
//         $("#pageSelector").val(currFieldConfig.pageSelector),
//         checkRadio("pageSave", currFieldConfig.pageSave),
//         $("#pageConcat").val(currFieldConfig.pageConcat),
//         $("#maxPage").val(currFieldConfig.maxPage),
//         $("#urlContain").val(currFieldConfig.urlContain)
// }
// function saveMutiPagrValue() {
//     currFieldConfig.pageSelector = $("#pageSelector").val(),
//         currFieldConfig.pageSave = getCheckRadio("pageSave"),
//         currFieldConfig.pageConcat = $("#pageConcat").val(),
//         currFieldConfig.maxPage = $("#maxPage").val(),
//         currFieldConfig.urlContain = $("#urlContain").val()
// }
// function switchMutiPagerAll(e) {
//     if (e) {
//         switchMutiPager(!0),
//             clearIframe();
//         var t = $("#pageSelector").val();
//         locationIfrSelector(t),
//             genAndShowPageExtractValue(t)
//     } else
//         switchMutiPager(!1),
//             initTrShow($currTr)
// }
// function switchMutiPager(e) {
//     e ? (mutiPagerSwitch = !0,
//         $(".js-pager-xpathValue").removeAttr("readonly")) : (mutiPagerSwitch = !1,
//         $(".js-pager-xpathValue").attr("readonly", !0)),
//         dealCheckBox("mutiPager-switch", e)
// }
// function mutiPageAction(e) {
//     $(e).prop("checked") ? (currFieldConfig.mutiPage = 1,
//         showMutiPage(!0)) : (currFieldConfig.mutiPage = 0,
//         showMutiPage(!1)),
//         saveCurrFieldConfig()
// }
// function showMutiPage(e) {
//     e ? $(".js-setMutiPager-div").removeClass("hide") : $(".js-setMutiPager-div").addClass("hide")
// }
// function delaKeepTxt(e) {
//     var t = $(e).prop("checked");
//     currFieldConfig.dela = t ? 2 : 0,
//         saveCurrFieldConfig()
// }
// function initDataDealValue() {
//     checkRadio("delAllImg", currFieldConfig.delAllImg),
//         initCheckBoxItemByName(currFieldConfig.delImg, "delImgItem"),
//         checkRadio("dela", currFieldConfig.dela),
//         initCheckBoxItemByName(currFieldConfig.delAs, "delAsItem"),
//         dealCheckBox("pType", currFieldConfig.pType),
//         $("#preTxt").val(currFieldConfig.preTxt),
//         $("#tailTxt").val(currFieldConfig.tailTxt),
//         checkRadio("randType", currFieldConfig.randType);
//     var e = getRadioCheckObjy("randType");
//     e && changeRandTypeShow(e.attr("data-show")),
//         $("#minRd").val(currFieldConfig.minRd),
//         $("#maxRd").val(currFieldConfig.maxRd),
//         $("#minRdtStr").val(currFieldConfig.minRdtStr),
//         $("#maxRdtStr").val(currFieldConfig.maxRdtStr),
//         $("#timeFmt").val(currFieldConfig.timeFmt),
//         $("#txtRd").val(currFieldConfig.txtRd),
//         $("#lenType").val(currFieldConfig.lenType),
//         $("#lenLimit").val(currFieldConfig.lenLimit),
//         checkRadio("filterType", 0 == currFieldConfig.filterType ? 1 : currFieldConfig.filterType),
//         $("#noInclude").val(currFieldConfig.noInclude),
//         $("#mustInclude").val(currFieldConfig.mustInclude)
// }
// function changeValueType() {
//     var e = parseInt(getCheckRadio("randType"));
//     currFieldConfig.valueType = e > 0 ? "random" : $("#valueType").val()
// }
// function changeRandTypeShow(e) {
//     showChangeByClass(e, "js-random-int-div"),
//         showChangeByClass(e, "js-random-time-div"),
//         showChangeByClass(e, "js-random-str-div")
// }
// function initCheckBoxItemByName(e, t) {
//     if (e) {
//         dealCheckBox(t, !1);
//         for (var i = e.split(","), n = 0, a = i.length; n < a; n++)
//             setCheckBoxByName(t, i[n])
//     } else
//         dealCheckBox(t, !1)
// }
// function setCheckBoxByName(e, t) {
//     $("input[type='checkbox'][name='" + e + "'][value='" + t + "']").prop("checked", !0)
// }
// function genCurrFieldValueArr() {
//     return genExtractValueArr(extractElementsCh(currFieldConfig.selectors), currFieldConfig.useHtml, currFieldConfig.useLink, currFieldConfig.valueType, currFieldConfig.attrName)
// }
// function saveDefaultValue() {
//     currFieldConfig.defaultValue = $("#js-defaultValue").val(),
//         currFieldConfig.concatDelimiter = $("#concatDelimiter").val(),
//         currFieldConfig.imgAttr = $("#imgAttr").val(),
//         currFieldConfig.valueType = $("#valueType").val(),
//         currFieldConfig.attrName = $("#attrName").val(),
//         saveCurrFieldConfig(),
//         $("#default-value-modal").modal("hide")
// }
// function saveDataDealValue() {
//     currFieldConfig.delAllImg = getCheckRadio("delAllImg");
//     var e = getCheckBox("delImgItem");
//     currFieldConfig.delImg = e.join(","),
//         currFieldConfig.dela = getCheckRadio("dela");
//     var t = getCheckBox("delAsItem");
//     currFieldConfig.delAs = t.join(",");
//     var i = isCheckedById("pType") ? 1 : 0;
//     currFieldConfig.pType = i;
//     var n = isCheckedById("keepAlt") ? 1 : 0;
//     currFieldConfig.keepAlt = n,
//         currFieldConfig.preTxt = $("#preTxt").val(),
//         currFieldConfig.tailTxt = $("#tailTxt").val(),
//         currFieldConfig.randType = getCheckRadio("randType"),
//         currFieldConfig.minRd = $("#minRd").val(),
//         currFieldConfig.maxRd = $("#maxRd").val(),
//         currFieldConfig.minRdtStr = $("#minRdtStr").val(),
//         currFieldConfig.maxRdtStr = $("#maxRdtStr").val(),
//         currFieldConfig.timeFmt = $("#timeFmt").val(),
//         currFieldConfig.txtRd = $("#txtRd").val(),
//         currFieldConfig.lenType = $("#lenType").val(),
//         currFieldConfig.lenLimit = $("#lenLimit").val(),
//         currFieldConfig.filterType = getCheckRadio("filterType"),
//         currFieldConfig.noInclude = $("#noInclude").val(),
//         currFieldConfig.mustInclude = $("#mustInclude").val()
// }
// function saveXpath() {
//     var e = $("#xpathValue").val();
//     currFieldConfig.selectors,
//         currFieldConfig.selectors = e,
//         saveCurrFieldConfig()
// }
// function saveXpathAndLocation() {
//     saveXpath(),
//         initCurrTrShow()
// }
// function testXpathAndLocation() {
//     var e = $("#xpathValue").val()
//         , t = currFieldConfig.selectors;
//     currFieldConfig.selectors,
//         currFieldConfig.selectors = e,
//         initCurrTrShow(),
//         currFieldConfig.selectors = t
// }
// function testXpath() {
//     var e = genSelectorValueArr($("#js-selectors").val(), currFieldConfig.useHtml, currFieldConfig.useLink, currFieldConfig.valueType, currFieldConfig.attrName);
//     $("#js-fieldValue").html(e.join("\n"))
// }
// function testXpathBySelectors(e) {
//     var t = genSelectorValueArr(e, currFieldConfig.useHtml, currFieldConfig.useLink, currFieldConfig.valueType, currFieldConfig.attrName);
//     $("#js-fieldValue").html(t.join("\n"))
// }
// function switchHtmlTagdiv(e) {
//     initHtmlTags(currFieldConfig.htmlEles),
//         e ? $(".js-htmlTag-div").css("display", "block") : $(".js-htmlTag-div").css("display", "none")
// }
// function saveCurrHtmlEles() {
//     var e = getCheckBox("htmlEleGroup", $(".js-htmlTag-items-div"))
//         , t = "";
//     e && e.length > 0 && (t = e.join(",")),
//         currFieldConfig.htmlEles = t
// }
// function initHtmlTags(e) {
//     $("input[name='htmlEleGroup']:checkbox", $(".js-htmlTag-items-div")).each(function() {
//         $(this).prop("checked", !1)
//     }),
//     e && setCheckBoxGroup("htmlEleGroup", e.split(","))
// }
// function setAndChangeCheckBox(e, t) {
//     setCheckBox(e, t),
//         currFieldConfig[e] = t,
//         saveCurrFieldConfig()
// }
// function showFieldValue(e) {
//     if (removeFieldValues(),
//     e && !(e.length <= 0) && e && e.length > 0)
//         for (var t = 0, i = e.length; t < i; t++)
//             if (e[t] && e[t].trim()) {
//                 var n = genTrValue(e[t]);
//                 if (t >= 6 && (n = genTrValue('<font color="red">当前选中数据总数：' + i + "条,省略显示" + (i - t) + "条...</font>")),
//                 n && "<tr></tr>" != n && $("#data-table>tbody").append(n),
//                 t >= 6)
//                     break
//             }
// }
// function genTrValue(e) {
//     return e ? "<tr><td>" + e + "</td></tr>" : ""
// }
// function useHtmlAction(e) {
//     if (currFieldConfig.selectors) {
//         var t = "text";
//         e && (t = "html"),
//             changeCurrValueType(t, "");
//         var i = genSelectorValueArrOri(currFieldConfig.selectors, currFieldConfig.useHtml, currFieldConfig.useLink, currFieldConfig.valueType, currFieldConfig.attrName);
//         saveCurrFieldConfig(),
//             setFieldFinalData(i.join("\n")),
//         currFieldConfig.useLink && (i = genLinkForUseLink(i)),
//             showFieldValue(i)
//     }
// }
// function genLinkForUseLink(e) {
//     var t = [];
//     if (!e || 0 == e.length)
//         return t;
//     for (var i = 0, n = e.length; i < n; i++) {
//         var a = genLinkHrefShowValueByValue(e[i]);
//         t.push(a)
//     }
//     return t
// }
// function changeCurrValueType(e, t) {
//     currFieldConfig.valueType = e,
//         initChangeValueType(e, t)
// }
// function initChangeValueType(e, t) {
//     $("#valueType").val(e),
//     t || (t = ""),
//         $("#attrName").val(t),
//         "attr" == e ? $(".js-attrValue-div").css("display", "block") : $(".js-attrValue-div").css("display", "none"),
//     "html" != e && dealCheckBox("useHtml", !1)
// }
// function clearIframe() {
//     runIfrFun("clearAll")
// }
// function initCounterAfterIframe() {}
// function locationIfrSelector(e) {
//     runIfrFun("locationSelector", e)
// }
// function runIfrFun(method, para1, para2, para3) {
//     var ct = "CONTENT".toLowerCase();
//     try {
//         var cw = ct + win;
//         if (eval('$("#ifr")[0].' + cw + "." + method)) {
//             var func = eval('$("#ifr")[0].' + cw + "." + method);
//             return func.call(func, para1, para2, para3)
//         }
//     } catch (e) {}
// }
// function genSelectorValueArr(e, t, i, n, a) {
//     var o = genSelectorValueArrOri(e, t, i, n, a);
//     return i && (o = genLinkForUseLink(o)),
//         o
// }
// function genSelectorValueArrOri(e, t, i, n, a) {
//     if (!e)
//         return [];
//     var o = extractElementsCh(e);
//     return o && 0 != o.length ? genExtractValueArrOri(o, t, i, n, a) : []
// }
// function extractElementsCh(e) {
//     return runIfrFun("extractElements", e)
// }
// function genFinalDatas(e, t) {
//     return extractAndProcessOri(extractElementsCh(e), t)
// }
// function extractAndProcess(e, t) {
//     for (var i = genExtractValueArr(e, t.useHtml, t.useLink, t.valueType, t.attrName), n = [], a = 0, o = i.length; a < o; a++)
//         n.push(processData(i[a], t));
//     return n
// }
// function extractAndProcessOri(e, t) {
//     for (var i = genExtractValueArrOri(e, t.useHtml, t.useLink, t.valueType, t.attrName), n = [], a = 0, o = i.length; a < o; a++)
//         n.push(processData(i[a], t));
//     return n
// }
// function genExtractValueArr(e, t, i, n, a) {
//     var o = genExtractValueArrOri(e, t, i, n, a);
//     return i && (o = genLinkForUseLink(o)),
//         o
// }
// function (e, t, i, n, a) {
//     if (!e || 0 == e.length)genExtractValueArrOri
//         return [];
//     for (var o = [], r = 0, s = e.length; r < s; r++) {
//         var l = ""
//             , c = e[r];
//         i ? isInArray(o, l = genLinkHrefValue(c)) && (l = "") : currFieldConfig.useImg ? l = genImgUrlShowValue(c) : (n ? "text" == n ? l = $(c).text() : "html" == n ? (c = deleteSdes(e[r]),
//             l = html2Escape($(c).html())) : "ohtml" == n ? (c = deleteSdes(e[r]),
//             l = html2Escape($(c).prop("outerHTML"))) : "ownText" == n ? l = $(c).ownText() : "attr" == n && a ? l = isLinkEle(c) && "href" == a ? genLinkHrefValue(c) : $(c).attr(a) : "random" == n && (l = "随机值，不可预览！") : l = $(c).text(),
//         t && (c = deleteSdes(e[r]),
//             l = html2Escape($(c).html()))),
//             o.push(l)
//     }
//     return o
// }
// function processData(e, t) {
//     var i = dealRegex(e, t.matchRegex, t.matchReplace);
//     return i = dealReplace(i, t.replaces),
//         i = dealRegexGroup(i, t.matchGp, t.matchSplit),
//         t.defaultValue && !i ? t.defaultValue : i
// }
// function dealReplace(e, t) {
//     if (!e || !t || 0 == t.length)
//         return e;
//     for (var i = e, n = 0, a = t.length; n < a; n++) {
//         var o = t[n];
//         i = replaceAll(i, o.from, o.to)
//     }
//     return i
// }
// function replaceAll(e, t, i) {
//     try {
//         e && t && (e = e.replace(new RegExp(t,"gm"), i))
//     } catch (e) {
//         showMsgErr("正则语法错误，注意模糊要使用点星.*，而不是*")
//     }
//     return e
// }
// function dealRegex(e, t, i) {
//     if (!e || !t)
//         return e;
//     var n = new RegExp(t,"g");
//     if (i)
//         return e.replace(n, i);
//     var a = e.match(n);
//     return a ? a.join("") : ""
// }
// function dealRegexGroup(e, t, i) {
//     if (!e || !t)
//         return e;
//     void 0 === i && (i = "");
//     var n = new RegExp(t,"g").exec(e);
//     if (n && n.length > 1) {
//         for (var a = [], o = 1, r = n.length; o < r; o++)
//             a.push(n[o]);
//         return a.join(i)
//     }
//     return ""
// }
// function genLinkHrefShowValue(e) {
//     return genLinkHrefShowValueByValue(genLinkHrefValue(e))
// }
// function genLinkHrefShowValueByValue(e) {
//     return e ? (e.startWith("/") && (e = getTargetSiteHomeUrl() + e),
//     '<a href="' + e + '" target="_blank">' + e + "</a>") : ""
// }
// function genLinkHrefValue(e) {
//     if (!e || !$(e).is("a") && e.nodeName.toLowerCase() != get())
//         return "";
//     var t = e;
//     e.nodeName.toLowerCase() == get() && (t = e.parentNode);
//     var i = $(t).attr("href");
//     return i || (i = $(t).attr("tshref")) ? "#" == i || i.toLowerCase().startWith("javascript") ? "" : i : ""
// }
function isLinkEle(e) {
    return !!e && (!!$(e).is("a") || !(e.nodeName.toLowerCase() != get() || (finalEle = e.parentNode,
        !$(finalEle).is("a"))))
}
// function genImgUrlShowValue(e) {
//     if (!e && e.nodeName.toLowerCase() != get())
//         return "";
//     var t = e;
//     if (e.nodeName.toLowerCase() == get() && (t = e.parentNode),
//     "img" == t.nodeName.toLowerCase())
//         return tryGetImgUrl(t, currFieldConfig);
//     var i = $("img", t)
//         , n = ",";
//     currFieldConfig.concatDelimiter && (n = currFieldConfig.concatDelimiter);
//     var a = "";
//     if (i && i.length > 0) {
//         for (var o = [], r = 0, s = i.length; r < s; r++) {
//             var l = tryGetImgUrl(i[r], currFieldConfig);
//             l && o.push(l)
//         }
//         a = o.join(n)
//     }
//     return a
// }
// function tryGetImgUrl(e, t) {
//     var i = ""
//         , n = $(e);
//     return t.imgAttr ? (i = n.attr(t.imgAttr)) || showMsgErr("图片属性不存在值，请检查源码，或不填或使用src") : ((i = n.attr("data-src")) || (i = n.attr("data-url")),
//     i || (i = n.attr("data-original")),
//     i || (i = n.attr("#src")),
//     i || (i = n.attr("src"))),
//         i
// }
// function deleteSdes(e) {
//     var t = $(get(), $(e));
//     if (t[0] && t.length > 0) {
//         var i = $(e).clone()
//             , n = $(get(), i);
//         return $.each(n, function(e, t) {
//             var i = $(t);
//             i.is(get()) && i.contents().unwrap()
//         }),
//             i
//     }
//     return e
// }
// function get() {
//     return myEle
// }
// function loadUrl(e) {
//     var t = $("#pageUrl").val();
//     if (!t)
//         return !1;
//     if (!isHttpUrl(t))
//         return bootbox.alert('"典型页面网址"必须以http://或https://开头'),
//             $("#pageUrl").focus(),
//             !1;
//     var i = {
//         url: t,
//         enableAjax: $("#ajaxPage").prop("checked"),
//         taskId: taskId
//     };
//     $.ajax({
//         url: homeUrl + "/extrator/loadHtml",
//         data: i,
//         async: !0,
//         success: function(e) {
//             1 == e.rs ? e.data && showUrlHtml(e.data) : showMsgErr(e.msg)
//         }
//     })
// }
// function showUrlHtml(e) {
//     try {
//         var t = e;
//         showHtml(t = (t = (t = t.replace(/class=\"\"/, " ")).replace(/\<\/head\>/g, '<link rel="stylesheet" type="text/css" href="http://dcdn.keydatas.com/css/iframe.css"/>\x3c!--[if lte IE 9]><link rel="stylesheet" type="text/css" href="http://dcdn.keydatas.com/css/iframe.ie.css"/><![endif]--\x3e</head>')).replace(/\<\/body\>/g, extratorTip + '<script type="text/javascript">var urlHome="";<\/script><script type="text/javascript" src="http://dcdn.keydatas.com/js/jquery-1.11.9.min.js"><\/script></body>'))
//     } catch (e) {}
// }
// function showHtml(e) {
//     try {
//         var t = $("#ifr")[0];
//         if (testSrcdoc())
//             t.srcdoc = e;
//         else {
//             t.setAttribute("srcdoc", e);
//             var i = "javascript: window.frameElement.getAttribute('srcdoc');";
//             t.setAttribute("src", i),
//             t.contentWindow && (t.contentWindow.location = i)
//         }
//     } catch (e) {}
// }
// function testSrcdoc() {
//     return "srcdoc"in document.createElement("iframe")
// }
// function addRowReplace() {
//     var e = initTemplateReplace("replace-table");
//     return $("#replace-table>tbody tr:last").after(e),
//         e
// }
// function addRowByDataDealType(e) {
//     return addRowAdv(getDataDealTrIdByType())
// }
// function addRowAdv(e) {
//     var t = initTemplateByTrId(e);
//     return initMutiSelected("select[name=tagName]", t),
//         $("#adv-deal-table>tbody tr:last").after(t),
//         t
// }
// function getDataDealTrIdByType(e) {
//     return "trCloneDelHtml"
// }
// function removeRowReplace(e) {
//     if ($tr = $(e).closest("tr")[0],
//     2 == getReplaceTrCount())
//         return resetTemplateReplace($($tr)),
//             void showMsgErr("最后一行不能删除，已为您清空值");
//     $tr.remove()
// }
// function removeRowAdv(e) {
//     $tr = $(e).closest("tr")[0],
//         $tr.remove()
// }
// function getReplaceTrCount() {
//     return $("#replace-table>tbody tr").size()
// }
// function copyTrOptHtmlTo() {
//     copyTrOptHtmlToByTableId("replace-table")
// }
// function copyTrOptHtmlToAdv() {
//     copyTrOptHtmlToByTableId("adv-deal-table")
// }
// function copyTrOptHtmlToByTableId(e) {
//     var t = $("#" + e + ">tbody>tr:first")
//         , i = $("td.js-row-opt", t).html();
//     $("#" + e + ">tbody tr:not(:first)").each(function() {
//         var e = $("td.js-row-opt", $(this));
//         e.text() || e.append(i)
//     })
// }
// function initTemplateReplace(e) {
//     var t = $("#" + e + ">tbody>tr:first").clone(!0, !0);
//     return resetTemplateReplace(t),
//         t
// }
// function initTemplateByTrId(e) {
//     var t = $("#" + e).clone(!0, !0);
//     return resetTemplateAdvDataDeal(t),
//         t
// }
// function resetTemplateAdvDataDeal(e) {
//     e.removeAttr("style"),
//         e.removeAttr("id"),
//         $("input:text", e).val(""),
//         advSortNo += 1,
//         $("input[name='sortNo']", e).val(advSortNo)
// }
// function resetTemplateReplace(e) {
//     e.removeAttr("style"),
//         e.removeAttr("id"),
//         $("input:text", e).val("")
// }
// function delAllRowsReplace() {
//     bootbox.confirm("确定要删除所有内容替换吗?", function(e) {
//         e && $("#replace-table>tbody tr:not(:first)").each(function() {
//             $(this).remove()
//         })
//     })
// }
// function initReplaces() {
//     emptyReplaces();
//     var e = currFieldConfig.replaces;
//     if (e && e.length > 0)
//         for (var t = 0, i = e.length; t < i; t++) {
//             var n = e[t]
//                 , a = addRowReplace();
//             $("input[name=from]", a).val(n.from),
//                 $("input[name=to]", a).val(n.to);
//             var o = 1 == n.reg;
//             $("input[type='checkbox'][name=reg]", a).prop("checked", o)
//         }
//     else
//         addRowReplace()
// }
// function initDataDeals() {
//     emptyDataDeals();
//     var e = currFieldConfig.dataDealVos;
//     if (e && e.length > 0)
//         for (var t = 0, i = e.length; t < i; t++) {
//             var n = e[t]
//                 , a = addRowByDataDealType(n.typeStr);
//             if ("delTag" == n.typeStr) {
//                 $("select[name=posType]", a).val(n.posType),
//                     $("input[name=delCount]", a).val(n.delCount),
//                     $("select[name=tagName]", a).val(n.tagName),
//                     $("select[name=tagName] option", a).each(function(e, t) {
//                         $.trim(t.value) == n.tagName && (this.selected = !0)
//                     }),
//                     $("select[name=tagName]", a).multiselect("refresh");
//                 var o = 1 == n.leftText;
//                 $("input[type='checkbox'][name=leftText]", a).prop("checked", o)
//             }
//             $("input[name=sortNo]", a).val(n.sortNo),
//             t == i - 1 && (advSortNo = parseInt(n.sortNo))
//         }
//     else
//         addRowByDataDealType("delTag")
// }
// function initMutiSelected(e, t) {
//     $(e, t).multiselect("destroy").multiselect({
//         nonSelectedText: "--请选择--",
//         enableFiltering: !0,
//         buttonClass: "btn btn-white btn-primary",
//         maxHeight: 350,
//         includeSelectAllOption: !0,
//         numberDisplayed: 5,
//         templates: {
//             button: '<button type="button" class="multiselect dropdown-toggle" data-toggle="dropdown"><span class="multiselect-selected-text"></span> &nbsp;<b class="fa fa-caret-down"></b></button>',
//             ul: '<ul class="multiselect-container dropdown-menu"></ul>',
//             filter: '<li class="multiselect-item filter"><div class="input-group"><span class="input-group-addon"><i class="fa fa-search"></i></span><input class="form-control multiselect-search" type="text"></div></li>',
//             filterClearBtn: '<span class="input-group-btn"><button class="btn btn-default btn-white btn-grey multiselect-clear-filter" type="button"><i class="fa fa-times-circle red2"></i></button></span>',
//             li: '<li><a tabindex="0"><label></label></a></li>',
//             divider: '<li class="multiselect-item divider"></li>',
//             liGroup: '<li class="multiselect-item multiselect-group"><label></label></li>'
//         }
//     })
// }
// function emptyReplaces() {
//     $("#replace-table>tbody tr:not(:first)").each(function() {
//         $(this).remove()
//     })
// }
// function emptyDataDeals() {
//     $("#" + dataDealTableId + ">tbody tr:gt(0)").each(function() {
//         $(this).remove()
//     })
// }
// function saveReplaces() {
//     currFieldConfig.replaces = genReplaceArray()
// }
// function saveDataDealAdv() {
//     currFieldConfig.dataDealVos = genDataDealArray()
// }
// function genReplaceArray() {
//     var e = [];
//     return $("#replace-table>tbody tr:not(:first)").each(function(t) {
//         var i = $(this)
//             , n = $("input[name=from]", i).val()
//             , a = $("input[name=to]", i).val()
//             , o = $("input[type='checkbox'][name=reg]", i).prop("checked") ? 1 : 0
//             , r = {};
//         r.from = n,
//             r.to = a || "",
//             r.reg = o,
//             r.sortNo = t + 1,
//         n && e.push(r)
//     }),
//         e
// }
// function genDataDealArray() {
//     var e = [];
//     return $("#adv-deal-table>tbody tr:gt(0)").each(function(t) {
//         var i = $(this)
//             , n = i.data("type")
//             , a = {};
//         if (a.typeStr = n,
//         "delTag" == n) {
//             var o = $("select[name=tagName]", i).val()
//                 , r = $("select[name=posType]", i).val()
//                 , s = $("input[name=delCount]", i).val();
//             if (!o)
//                 return !0;
//             var l = $("input[type='checkbox'][name=leftText]", i).prop("checked") ? 1 : 0;
//             a.tagName = o,
//                 a.posType = r,
//                 a.delCount = s,
//                 a.leftText = l
//         }
//         var c = $("input[name=sortNo]", i).val();
//         c || (c = 0),
//             a.sortNo = c,
//             e.push(a)
//     }),
//         e
// }
// function saveFileDown() {
//     var e = getCheckRadio("fileSaveType");
//     currFieldConfig.fileSaveType = e,
//         saveCurrFieldConfig()
// }
// function initFileDown() {
//     checkRadio("fileSaveType", currFieldConfig.fileSaveType),
//         checkRadio("storageType", storageType),
//         $("#httpPrefix").val(fileDownConfig.httpPrefix)
// }
// function saveFileStorage() {
//     storageType = getCheckRadio("storageType"),
//         fileDownConfig.httpPrefix = $("#httpPrefix").val(),
//         saveCurrFieldConfig()
// }
// function showFieldFinalData() {
//     setFieldFinalData(genFinalDatas(currFieldConfig.selectors, currFieldConfig))
// }
// function setFieldFinalData(e) {
//     $(".js-show-final-data").text(e)
// }
// !function(e) {
//     "function" == typeof define && define.amd ? define(["jquery"], e) : e("object" == typeof exports ? require("jquery") : jQuery)
// }(function(e, t) {
//     function i() {
//         return new Date(Date.UTC.apply(Date, arguments))
//     }
//     function n() {
//         var e = new Date;
//         return i(e.getFullYear(), e.getMonth(), e.getDate())
//     }
//     function a(e, t) {
//         return e.getUTCFullYear() === t.getUTCFullYear() && e.getUTCMonth() === t.getUTCMonth() && e.getUTCDate() === t.getUTCDate()
//     }
//     function o(e) {
//         return function() {
//             return this[e].apply(this, arguments)
//         }
//     }
//     function r(e) {
//         return e && !isNaN(e.getTime())
//     }
//     function s(t, i) {
//         var n, a = e(t).data(), o = {}, r = new RegExp("^" + i.toLowerCase() + "([A-Z])");
//         i = new RegExp("^" + i.toLowerCase());
//         for (var s in a)
//             i.test(s) && (n = s.replace(r, function(e, t) {
//                 return t.toLowerCase()
//             }),
//                 o[n] = a[s]);
//         return o
//     }
//     function l(t) {
//         var i = {};
//         if (m[t] || (t = t.split("-")[0],
//             m[t])) {
//             var n = m[t];
//             return e.each(g, function(e, t) {
//                 t in n && (i[t] = n[t])
//             }),
//                 i
//         }
//     }
//     var c = function() {
//         var t = {
//             get: function(e) {
//                 return this.slice(e)[0]
//             },
//             contains: function(e) {
//                 for (var t = e && e.valueOf(), i = 0, n = this.length; n > i; i++)
//                     if (this[i].valueOf() === t)
//                         return i;
//                 return -1
//             },
//             remove: function(e) {
//                 this.splice(e, 1)
//             },
//             replace: function(t) {
//                 t && (e.isArray(t) || (t = [t]),
//                     this.clear(),
//                     this.push.apply(this, t))
//             },
//             clear: function() {
//                 this.length = 0
//             },
//             copy: function() {
//                 var e = new c;
//                 return e.replace(this),
//                     e
//             }
//         };
//         return function() {
//             var i = [];
//             return i.push.apply(i, arguments),
//                 e.extend(i, t),
//                 i
//         }
//     }()
//         , u = function(t, i) {
//         e(t).data("datepicker", this),
//             this._process_options(i),
//             this.dates = new c,
//             this.viewDate = this.o.defaultViewDate,
//             this.focusDate = null,
//             this.element = e(t),
//             this.isInline = !1,
//             this.isInput = this.element.is("input"),
//             this.component = !!this.element.hasClass("date") && this.element.find(".add-on, .input-group-addon, .btn"),
//             this.hasInput = this.component && this.element.find("input").length,
//         this.component && 0 === this.component.length && (this.component = !1),
//             this.picker = e(v.template),
//         this._check_template(this.o.templates.leftArrow) && this.picker.find(".prev").html(this.o.templates.leftArrow),
//         this._check_template(this.o.templates.rightArrow) && this.picker.find(".next").html(this.o.templates.rightArrow),
//             this._buildEvents(),
//             this._attachEvents(),
//             this.isInline ? this.picker.addClass("datepicker-inline").appendTo(this.element) : this.picker.addClass("datepicker-dropdown dropdown-menu"),
//         this.o.rtl && this.picker.addClass("datepicker-rtl"),
//             this.viewMode = this.o.startView,
//         this.o.calendarWeeks && this.picker.find("thead .datepicker-title, tfoot .today, tfoot .clear").attr("colspan", function(e, t) {
//             return parseInt(t) + 1
//         }),
//             this._allow_update = !1,
//             this.setStartDate(this._o.startDate),
//             this.setEndDate(this._o.endDate),
//             this.setDaysOfWeekDisabled(this.o.daysOfWeekDisabled),
//             this.setDaysOfWeekHighlighted(this.o.daysOfWeekHighlighted),
//             this.setDatesDisabled(this.o.datesDisabled),
//             this.fillDow(),
//             this.fillMonths(),
//             this._allow_update = !0,
//             this.update(),
//             this.showMode(),
//         this.isInline && this.show()
//     };
//     u.prototype = {
//         constructor: u,
//         _resolveViewName: function(e, i) {
//             return 0 === e || "days" === e || "month" === e ? 0 : 1 === e || "months" === e || "year" === e ? 1 : 2 === e || "years" === e || "decade" === e ? 2 : 3 === e || "decades" === e || "century" === e ? 3 : 4 === e || "centuries" === e || "millennium" === e ? 4 : i !== t && i
//         },
//         _check_template: function(i) {
//             try {
//                 return i !== t && "" !== i && ((i.match(/[<>]/g) || []).length <= 0 || e(i).length > 0)
//             } catch (e) {
//                 return !1
//             }
//         },
//         _process_options: function(t) {
//             this._o = e.extend({}, this._o, t);
//             var a = this.o = e.extend({}, this._o)
//                 , o = a.language;
//             m[o] || (o = o.split("-")[0],
//             m[o] || (o = p.language)),
//                 a.language = o,
//                 a.startView = this._resolveViewName(a.startView, 0),
//                 a.minViewMode = this._resolveViewName(a.minViewMode, 0),
//                 a.maxViewMode = this._resolveViewName(a.maxViewMode, 4),
//                 a.startView = Math.min(a.startView, a.maxViewMode),
//                 a.startView = Math.max(a.startView, a.minViewMode),
//             !0 !== a.multidate && (a.multidate = Number(a.multidate) || !1,
//             !1 !== a.multidate && (a.multidate = Math.max(0, a.multidate))),
//                 a.multidateSeparator = String(a.multidateSeparator),
//                 a.weekStart %= 7,
//                 a.weekEnd = (a.weekStart + 6) % 7;
//             var r = v.parseFormat(a.format);
//             if (a.startDate !== -1 / 0 && (a.startDate ? a.startDate instanceof Date ? a.startDate = this._local_to_utc(this._zero_time(a.startDate)) : a.startDate = v.parseDate(a.startDate, r, a.language, a.assumeNearbyYear) : a.startDate = -1 / 0),
//             a.endDate !== 1 / 0 && (a.endDate ? a.endDate instanceof Date ? a.endDate = this._local_to_utc(this._zero_time(a.endDate)) : a.endDate = v.parseDate(a.endDate, r, a.language, a.assumeNearbyYear) : a.endDate = 1 / 0),
//                 a.daysOfWeekDisabled = a.daysOfWeekDisabled || [],
//             e.isArray(a.daysOfWeekDisabled) || (a.daysOfWeekDisabled = a.daysOfWeekDisabled.split(/[,\s]*/)),
//                 a.daysOfWeekDisabled = e.map(a.daysOfWeekDisabled, function(e) {
//                     return parseInt(e, 10)
//                 }),
//                 a.daysOfWeekHighlighted = a.daysOfWeekHighlighted || [],
//             e.isArray(a.daysOfWeekHighlighted) || (a.daysOfWeekHighlighted = a.daysOfWeekHighlighted.split(/[,\s]*/)),
//                 a.daysOfWeekHighlighted = e.map(a.daysOfWeekHighlighted, function(e) {
//                     return parseInt(e, 10)
//                 }),
//                 a.datesDisabled = a.datesDisabled || [],
//                 !e.isArray(a.datesDisabled)) {
//                 var s = [];
//                 s.push(v.parseDate(a.datesDisabled, r, a.language, a.assumeNearbyYear)),
//                     a.datesDisabled = s
//             }
//             a.datesDisabled = e.map(a.datesDisabled, function(e) {
//                 return v.parseDate(e, r, a.language, a.assumeNearbyYear)
//             });
//             var l = String(a.orientation).toLowerCase().split(/\s+/g)
//                 , c = a.orientation.toLowerCase();
//             if (l = e.grep(l, function(e) {
//                 return /^auto|left|right|top|bottom$/.test(e)
//             }),
//                 a.orientation = {
//                     x: "auto",
//                     y: "auto"
//                 },
//             c && "auto" !== c)
//                 if (1 === l.length)
//                     switch (l[0]) {
//                         case "top":
//                         case "bottom":
//                             a.orientation.y = l[0];
//                             break;
//                         case "left":
//                         case "right":
//                             a.orientation.x = l[0]
//                     }
//                 else
//                     c = e.grep(l, function(e) {
//                         return /^left|right$/.test(e)
//                     }),
//                         a.orientation.x = c[0] || "auto",
//                         c = e.grep(l, function(e) {
//                             return /^top|bottom$/.test(e)
//                         }),
//                         a.orientation.y = c[0] || "auto";
//             if (a.defaultViewDate) {
//                 var u = a.defaultViewDate.year || (new Date).getFullYear()
//                     , d = a.defaultViewDate.month || 0
//                     , h = a.defaultViewDate.day || 1;
//                 a.defaultViewDate = i(u, d, h)
//             } else
//                 a.defaultViewDate = n()
//         },
//         _events: [],
//         _secondaryEvents: [],
//         _applyEvents: function(e) {
//             for (var i, n, a, o = 0; o < e.length; o++)
//                 i = e[o][0],
//                     2 === e[o].length ? (n = t,
//                         a = e[o][1]) : 3 === e[o].length && (n = e[o][1],
//                         a = e[o][2]),
//                     i.on(a, n)
//         },
//         _unapplyEvents: function(e) {
//             for (var i, n, a, o = 0; o < e.length; o++)
//                 i = e[o][0],
//                     2 === e[o].length ? (a = t,
//                         n = e[o][1]) : 3 === e[o].length && (a = e[o][1],
//                         n = e[o][2]),
//                     i.off(n, a)
//         },
//         _buildEvents: function() {
//             var t = {
//                 keyup: e.proxy(function(t) {
//                     -1 === e.inArray(t.keyCode, [27, 37, 39, 38, 40, 32, 13, 9]) && this.update()
//                 }, this),
//                 keydown: e.proxy(this.keydown, this),
//                 paste: e.proxy(this.paste, this)
//             };
//             !0 === this.o.showOnFocus && (t.focus = e.proxy(this.show, this)),
//                 this.isInput ? this._events = [[this.element, t]] : this.component && this.hasInput ? this._events = [[this.element.find("input"), t], [this.component, {
//                     click: e.proxy(this.show, this)
//                 }]] : this.element.is("div") ? this.isInline = !0 : this._events = [[this.element, {
//                     click: e.proxy(this.show, this)
//                 }]],
//                 this._events.push([this.element, "*", {
//                     blur: e.proxy(function(e) {
//                         this._focused_from = e.target
//                     }, this)
//                 }], [this.element, {
//                     blur: e.proxy(function(e) {
//                         this._focused_from = e.target
//                     }, this)
//                 }]),
//             this.o.immediateUpdates && this._events.push([this.element, {
//                 "changeYear changeMonth": e.proxy(function(e) {
//                     this.update(e.date)
//                 }, this)
//             }]),
//                 this._secondaryEvents = [[this.picker, {
//                     click: e.proxy(this.click, this)
//                 }], [e(window), {
//                     resize: e.proxy(this.place, this)
//                 }], [e(document), {
//                     mousedown: e.proxy(function(e) {
//                         this.element.is(e.target) || this.element.find(e.target).length || this.picker.is(e.target) || this.picker.find(e.target).length || this.picker.hasClass("datepicker-inline") || this.hide()
//                     }, this)
//                 }]]
//         },
//         _attachEvents: function() {
//             this._detachEvents(),
//                 this._applyEvents(this._events)
//         },
//         _detachEvents: function() {
//             this._unapplyEvents(this._events)
//         },
//         _attachSecondaryEvents: function() {
//             this._detachSecondaryEvents(),
//                 this._applyEvents(this._secondaryEvents)
//         },
//         _detachSecondaryEvents: function() {
//             this._unapplyEvents(this._secondaryEvents)
//         },
//         _trigger: function(t, i) {
//             var n = i || this.dates.get(-1)
//                 , a = this._utc_to_local(n);
//             this.element.trigger({
//                 type: t,
//                 date: a,
//                 dates: e.map(this.dates, this._utc_to_local),
//                 format: e.proxy(function(e, t) {
//                     0 === arguments.length ? (e = this.dates.length - 1,
//                         t = this.o.format) : "string" == typeof e && (t = e,
//                         e = this.dates.length - 1),
//                         t = t || this.o.format;
//                     var i = this.dates.get(e);
//                     return v.formatDate(i, t, this.o.language)
//                 }, this)
//             })
//         },
//         show: function() {
//             if (!(this.component ? this.element.find("input") : this.element).attr("readonly") || !1 !== this.o.enableOnReadonly)
//                 return this.isInline || this.picker.appendTo(this.o.container),
//                     this.place(),
//                     this.picker.show(),
//                     this._attachSecondaryEvents(),
//                     this._trigger("show"),
//                 (window.navigator.msMaxTouchPoints || "ontouchstart"in document) && this.o.disableTouchKeyboard && e(this.element).blur(),
//                     this
//         },
//         hide: function() {
//             return this.isInline ? this : this.picker.is(":visible") ? (this.focusDate = null,
//                 this.picker.hide().detach(),
//                 this._detachSecondaryEvents(),
//                 this.viewMode = this.o.startView,
//                 this.showMode(),
//             this.o.forceParse && (this.isInput && this.element.val() || this.hasInput && this.element.find("input").val()) && this.setValue(),
//                 this._trigger("hide"),
//                 this) : this
//         },
//         destroy: function() {
//             return this.hide(),
//                 this._detachEvents(),
//                 this._detachSecondaryEvents(),
//                 this.picker.remove(),
//                 delete this.element.data().datepicker,
//             this.isInput || delete this.element.data().date,
//                 this
//         },
//         paste: function(t) {
//             var i;
//             if (t.originalEvent.clipboardData && t.originalEvent.clipboardData.types && -1 !== e.inArray("text/plain", t.originalEvent.clipboardData.types))
//                 i = t.originalEvent.clipboardData.getData("text/plain");
//             else {
//                 if (!window.clipboardData)
//                     return;
//                 i = window.clipboardData.getData("Text")
//             }
//             this.setDate(i),
//                 this.update(),
//                 t.preventDefault()
//         },
//         _utc_to_local: function(e) {
//             return e && new Date(e.getTime() + 6e4 * e.getTimezoneOffset())
//         },
//         _local_to_utc: function(e) {
//             return e && new Date(e.getTime() - 6e4 * e.getTimezoneOffset())
//         },
//         _zero_time: function(e) {
//             return e && new Date(e.getFullYear(),e.getMonth(),e.getDate())
//         },
//         _zero_utc_time: function(e) {
//             return e && new Date(Date.UTC(e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate()))
//         },
//         getDates: function() {
//             return e.map(this.dates, this._utc_to_local)
//         },
//         getUTCDates: function() {
//             return e.map(this.dates, function(e) {
//                 return new Date(e)
//             })
//         },
//         getDate: function() {
//             return this._utc_to_local(this.getUTCDate())
//         },
//         getUTCDate: function() {
//             var e = this.dates.get(-1);
//             return void 0 !== e ? new Date(e) : null
//         },
//         clearDates: function() {
//             var e;
//             this.isInput ? e = this.element : this.component && (e = this.element.find("input")),
//             e && e.val(""),
//                 this.update(),
//                 this._trigger("changeDate"),
//             this.o.autoclose && this.hide()
//         },
//         setDates: function() {
//             var t = e.isArray(arguments[0]) ? arguments[0] : arguments;
//             return this.update.apply(this, t),
//                 this._trigger("changeDate"),
//                 this.setValue(),
//                 this
//         },
//         setUTCDates: function() {
//             var t = e.isArray(arguments[0]) ? arguments[0] : arguments;
//             return this.update.apply(this, e.map(t, this._utc_to_local)),
//                 this._trigger("changeDate"),
//                 this.setValue(),
//                 this
//         },
//         setDate: o("setDates"),
//         setUTCDate: o("setUTCDates"),
//         remove: o("destroy"),
//         setValue: function() {
//             var e = this.getFormattedDate();
//             return this.isInput ? this.element.val(e) : this.component && this.element.find("input").val(e),
//                 this
//         },
//         getFormattedDate: function(i) {
//             i === t && (i = this.o.format);
//             var n = this.o.language;
//             return e.map(this.dates, function(e) {
//                 return v.formatDate(e, i, n)
//             }).join(this.o.multidateSeparator)
//         },
//         getStartDate: function() {
//             return this.o.startDate
//         },
//         setStartDate: function(e) {
//             return this._process_options({
//                 startDate: e
//             }),
//                 this.update(),
//                 this.updateNavArrows(),
//                 this
//         },
//         getEndDate: function() {
//             return this.o.endDate
//         },
//         setEndDate: function(e) {
//             return this._process_options({
//                 endDate: e
//             }),
//                 this.update(),
//                 this.updateNavArrows(),
//                 this
//         },
//         setDaysOfWeekDisabled: function(e) {
//             return this._process_options({
//                 daysOfWeekDisabled: e
//             }),
//                 this.update(),
//                 this.updateNavArrows(),
//                 this
//         },
//         setDaysOfWeekHighlighted: function(e) {
//             return this._process_options({
//                 daysOfWeekHighlighted: e
//             }),
//                 this.update(),
//                 this
//         },
//         setDatesDisabled: function(e) {
//             this._process_options({
//                 datesDisabled: e
//             }),
//                 this.update(),
//                 this.updateNavArrows()
//         },
//         place: function() {
//             if (this.isInline)
//                 return this;
//             var t = this.picker.outerWidth()
//                 , i = this.picker.outerHeight()
//                 , n = e(this.o.container)
//                 , a = n.width()
//                 , o = "body" === this.o.container ? e(document).scrollTop() : n.scrollTop()
//                 , r = n.offset()
//                 , s = [];
//             this.element.parents().each(function() {
//                 var t = e(this).css("z-index");
//                 "auto" !== t && 0 !== t && s.push(parseInt(t))
//             });
//             var l = Math.max.apply(Math, s) + this.o.zIndexOffset
//                 , c = this.component ? this.component.parent().offset() : this.element.offset()
//                 , u = this.component ? this.component.outerHeight(!0) : this.element.outerHeight(!1)
//                 , d = this.component ? this.component.outerWidth(!0) : this.element.outerWidth(!1)
//                 , h = c.left - r.left
//                 , f = c.top - r.top;
//             "body" !== this.o.container && (f += o),
//                 this.picker.removeClass("datepicker-orient-top datepicker-orient-bottom datepicker-orient-right datepicker-orient-left"),
//                 "auto" !== this.o.orientation.x ? (this.picker.addClass("datepicker-orient-" + this.o.orientation.x),
//                 "right" === this.o.orientation.x && (h -= t - d)) : c.left < 0 ? (this.picker.addClass("datepicker-orient-left"),
//                     h -= c.left - 10) : h + t > a ? (this.picker.addClass("datepicker-orient-right"),
//                     h += d - t) : this.picker.addClass("datepicker-orient-left");
//             var p, g = this.o.orientation.y;
//             if ("auto" === g && (p = -o + f - i,
//                 g = 0 > p ? "bottom" : "top"),
//                 this.picker.addClass("datepicker-orient-" + g),
//                 "top" === g ? f -= i + parseInt(this.picker.css("padding-top")) : f += u,
//                 this.o.rtl) {
//                 var m = a - (h + d);
//                 this.picker.css({
//                     top: f,
//                     right: m,
//                     zIndex: l
//                 })
//             } else
//                 this.picker.css({
//                     top: f,
//                     left: h,
//                     zIndex: l
//                 });
//             return this
//         },
//         _allow_update: !0,
//         update: function() {
//             if (!this._allow_update)
//                 return this;
//             var t = this.dates.copy()
//                 , i = []
//                 , n = !1;
//             return arguments.length ? (e.each(arguments, e.proxy(function(e, t) {
//                 t instanceof Date && (t = this._local_to_utc(t)),
//                     i.push(t)
//             }, this)),
//                 n = !0) : (i = this.isInput ? this.element.val() : this.element.data("date") || this.element.find("input").val(),
//                 i = i && this.o.multidate ? i.split(this.o.multidateSeparator) : [i],
//                 delete this.element.data().date),
//                 i = e.map(i, e.proxy(function(e) {
//                     return v.parseDate(e, this.o.format, this.o.language, this.o.assumeNearbyYear)
//                 }, this)),
//                 i = e.grep(i, e.proxy(function(e) {
//                     return !this.dateWithinRange(e) || !e
//                 }, this), !0),
//                 this.dates.replace(i),
//                 this.dates.length ? this.viewDate = new Date(this.dates.get(-1)) : this.viewDate < this.o.startDate ? this.viewDate = new Date(this.o.startDate) : this.viewDate > this.o.endDate ? this.viewDate = new Date(this.o.endDate) : this.viewDate = this.o.defaultViewDate,
//                 n ? this.setValue() : i.length && String(t) !== String(this.dates) && this._trigger("changeDate"),
//             !this.dates.length && t.length && this._trigger("clearDate"),
//                 this.fill(),
//                 this.element.change(),
//                 this
//         },
//         fillDow: function() {
//             var t = this.o.weekStart
//                 , i = "<tr>";
//             for (this.o.calendarWeeks && (this.picker.find(".datepicker-days .datepicker-switch").attr("colspan", function(e, t) {
//                 return parseInt(t) + 1
//             }),
//                 i += '<th class="cw">&#160;</th>'); t < this.o.weekStart + 7; )
//                 i += '<th class="dow',
//                 e.inArray(t, this.o.daysOfWeekDisabled) > -1 && (i += " disabled"),
//                     i += '">' + m[this.o.language].daysMin[t++ % 7] + "</th>";
//             i += "</tr>",
//                 this.picker.find(".datepicker-days thead").append(i)
//         },
//         fillMonths: function() {
//             for (var e = this._utc_to_local(this.viewDate), t = "", i = 0; 12 > i; )
//                 t += '<span class="month' + (e && e.getMonth() === i ? " focused" : "") + '">' + m[this.o.language].monthsShort[i++] + "</span>";
//             this.picker.find(".datepicker-months td").html(t)
//         },
//         setRange: function(t) {
//             t && t.length ? this.range = e.map(t, function(e) {
//                 return e.valueOf()
//             }) : delete this.range,
//                 this.fill()
//         },
//         getClassNames: function(t) {
//             var i = []
//                 , n = this.viewDate.getUTCFullYear()
//                 , a = this.viewDate.getUTCMonth()
//                 , o = new Date;
//             return t.getUTCFullYear() < n || t.getUTCFullYear() === n && t.getUTCMonth() < a ? i.push("old") : (t.getUTCFullYear() > n || t.getUTCFullYear() === n && t.getUTCMonth() > a) && i.push("new"),
//             this.focusDate && t.valueOf() === this.focusDate.valueOf() && i.push("focused"),
//             this.o.todayHighlight && t.getUTCFullYear() === o.getFullYear() && t.getUTCMonth() === o.getMonth() && t.getUTCDate() === o.getDate() && i.push("today"),
//             -1 !== this.dates.contains(t) && i.push("active"),
//             this.dateWithinRange(t) && !this.dateIsDisabled(t) || i.push("disabled"),
//             -1 !== e.inArray(t.getUTCDay(), this.o.daysOfWeekHighlighted) && i.push("highlighted"),
//             this.range && (t > this.range[0] && t < this.range[this.range.length - 1] && i.push("range"),
//             -1 !== e.inArray(t.valueOf(), this.range) && i.push("selected"),
//             t.valueOf() === this.range[0] && i.push("range-start"),
//             t.valueOf() === this.range[this.range.length - 1] && i.push("range-end")),
//                 i
//         },
//         _fill_yearsView: function(i, n, a, o, r, s, l, c) {
//             var u, d, h, f, p, g, m, v, C, y, w;
//             for (u = "",
//                      d = this.picker.find(i),
//                      h = parseInt(r / a, 10) * a,
//                      p = parseInt(s / o, 10) * o,
//                      g = parseInt(l / o, 10) * o,
//                      f = e.map(this.dates, function(e) {
//                          return parseInt(e.getUTCFullYear() / o, 10) * o
//                      }),
//                      d.find(".datepicker-switch").text(h + "-" + (h + 9 * o)),
//                      m = h - o,
//                      v = -1; 11 > v; v += 1)
//                 C = [n],
//                     y = null,
//                     -1 === v ? C.push("old") : 10 === v && C.push("new"),
//                 -1 !== e.inArray(m, f) && C.push("active"),
//                 (p > m || m > g) && C.push("disabled"),
//                 m === this.viewDate.getFullYear() && C.push("focused"),
//                 c !== e.noop && ((w = c(new Date(m,0,1))) === t ? w = {} : "boolean" == typeof w ? w = {
//                     enabled: w
//                 } : "string" == typeof w && (w = {
//                     classes: w
//                 }),
//                 !1 === w.enabled && C.push("disabled"),
//                 w.classes && (C = C.concat(w.classes.split(/\s+/))),
//                 w.tooltip && (y = w.tooltip)),
//                     u += '<span class="' + C.join(" ") + '"' + (y ? ' title="' + y + '"' : "") + ">" + m + "</span>",
//                     m += o;
//             d.find("td").html(u)
//         },
//         fill: function() {
//             var n, a, o = new Date(this.viewDate), r = o.getUTCFullYear(), s = o.getUTCMonth(), l = this.o.startDate !== -1 / 0 ? this.o.startDate.getUTCFullYear() : -1 / 0, c = this.o.startDate !== -1 / 0 ? this.o.startDate.getUTCMonth() : -1 / 0, u = this.o.endDate !== 1 / 0 ? this.o.endDate.getUTCFullYear() : 1 / 0, d = this.o.endDate !== 1 / 0 ? this.o.endDate.getUTCMonth() : 1 / 0, h = m[this.o.language].today || m.en.today || "", f = m[this.o.language].clear || m.en.clear || "", p = m[this.o.language].titleFormat || m.en.titleFormat;
//             if (!isNaN(r) && !isNaN(s)) {
//                 this.picker.find(".datepicker-days .datepicker-switch").text(v.formatDate(o, p, this.o.language)),
//                     this.picker.find("tfoot .today").text(h).toggle(!1 !== this.o.todayBtn),
//                     this.picker.find("tfoot .clear").text(f).toggle(!1 !== this.o.clearBtn),
//                     this.picker.find("thead .datepicker-title").text(this.o.title).toggle("" !== this.o.title),
//                     this.updateNavArrows(),
//                     this.fillMonths();
//                 var g = i(r, s - 1, 28)
//                     , C = v.getDaysInMonth(g.getUTCFullYear(), g.getUTCMonth());
//                 g.setUTCDate(C),
//                     g.setUTCDate(C - (g.getUTCDay() - this.o.weekStart + 7) % 7);
//                 var y = new Date(g);
//                 g.getUTCFullYear() < 100 && y.setUTCFullYear(g.getUTCFullYear()),
//                     y.setUTCDate(y.getUTCDate() + 42),
//                     y = y.valueOf();
//                 for (var w, b = []; g.valueOf() < y; ) {
//                     if (g.getUTCDay() === this.o.weekStart && (b.push("<tr>"),
//                         this.o.calendarWeeks)) {
//                         var k = new Date(+g + (this.o.weekStart - g.getUTCDay() - 7) % 7 * 864e5)
//                             , x = new Date(Number(k) + (11 - k.getUTCDay()) % 7 * 864e5)
//                             , $ = new Date(Number($ = i(x.getUTCFullYear(), 0, 1)) + (11 - $.getUTCDay()) % 7 * 864e5)
//                             , T = (x - $) / 864e5 / 7 + 1;
//                         b.push('<td class="cw">' + T + "</td>")
//                     }
//                     (w = this.getClassNames(g)).push("day"),
//                     this.o.beforeShowDay !== e.noop && ((a = this.o.beforeShowDay(this._utc_to_local(g))) === t ? a = {} : "boolean" == typeof a ? a = {
//                         enabled: a
//                     } : "string" == typeof a && (a = {
//                         classes: a
//                     }),
//                     !1 === a.enabled && w.push("disabled"),
//                     a.classes && (w = w.concat(a.classes.split(/\s+/))),
//                     a.tooltip && (n = a.tooltip)),
//                         w = e.unique(w),
//                         b.push('<td class="' + w.join(" ") + '"' + (n ? ' title="' + n + '"' : "") + ">" + g.getUTCDate() + "</td>"),
//                         n = null,
//                     g.getUTCDay() === this.o.weekEnd && b.push("</tr>"),
//                         g.setUTCDate(g.getUTCDate() + 1)
//                 }
//                 this.picker.find(".datepicker-days tbody").empty().append(b.join(""));
//                 var F = m[this.o.language].monthsTitle || m.en.monthsTitle || "Months"
//                     , D = this.picker.find(".datepicker-months").find(".datepicker-switch").text(this.o.maxViewMode < 2 ? F : r).end().find("span").removeClass("active");
//                 if (e.each(this.dates, function(e, t) {
//                     t.getUTCFullYear() === r && D.eq(t.getUTCMonth()).addClass("active")
//                 }),
//                 (l > r || r > u) && D.addClass("disabled"),
//                 r === l && D.slice(0, c).addClass("disabled"),
//                 r === u && D.slice(d + 1).addClass("disabled"),
//                 this.o.beforeShowMonth !== e.noop) {
//                     var _ = this;
//                     e.each(D, function(i, n) {
//                         var a = new Date(r,i,1)
//                             , o = _.o.beforeShowMonth(a);
//                         o === t ? o = {} : "boolean" == typeof o ? o = {
//                             enabled: o
//                         } : "string" == typeof o && (o = {
//                             classes: o
//                         }),
//                         !1 !== o.enabled || e(n).hasClass("disabled") || e(n).addClass("disabled"),
//                         o.classes && e(n).addClass(o.classes),
//                         o.tooltip && e(n).prop("title", o.tooltip)
//                     })
//                 }
//                 this._fill_yearsView(".datepicker-years", "year", 10, 1, r, l, u, this.o.beforeShowYear),
//                     this._fill_yearsView(".datepicker-decades", "decade", 100, 10, r, l, u, this.o.beforeShowDecade),
//                     this._fill_yearsView(".datepicker-centuries", "century", 1e3, 100, r, l, u, this.o.beforeShowCentury)
//             }
//         },
//         updateNavArrows: function() {
//             if (this._allow_update) {
//                 var e = new Date(this.viewDate)
//                     , t = e.getUTCFullYear()
//                     , i = e.getUTCMonth();
//                 switch (this.viewMode) {
//                     case 0:
//                         this.o.startDate !== -1 / 0 && t <= this.o.startDate.getUTCFullYear() && i <= this.o.startDate.getUTCMonth() ? this.picker.find(".prev").css({
//                             visibility: "hidden"
//                         }) : this.picker.find(".prev").css({
//                             visibility: "visible"
//                         }),
//                             this.o.endDate !== 1 / 0 && t >= this.o.endDate.getUTCFullYear() && i >= this.o.endDate.getUTCMonth() ? this.picker.find(".next").css({
//                                 visibility: "hidden"
//                             }) : this.picker.find(".next").css({
//                                 visibility: "visible"
//                             });
//                         break;
//                     case 1:
//                     case 2:
//                     case 3:
//                     case 4:
//                         this.o.startDate !== -1 / 0 && t <= this.o.startDate.getUTCFullYear() || this.o.maxViewMode < 2 ? this.picker.find(".prev").css({
//                             visibility: "hidden"
//                         }) : this.picker.find(".prev").css({
//                             visibility: "visible"
//                         }),
//                             this.o.endDate !== 1 / 0 && t >= this.o.endDate.getUTCFullYear() || this.o.maxViewMode < 2 ? this.picker.find(".next").css({
//                                 visibility: "hidden"
//                             }) : this.picker.find(".next").css({
//                                 visibility: "visible"
//                             })
//                 }
//             }
//         },
//         click: function(t) {
//             t.preventDefault(),
//                 t.stopPropagation();
//             var a, o, r, s, l, c, u;
//             (a = e(t.target)).hasClass("datepicker-switch") && this.showMode(1);
//             var d = a.closest(".prev, .next");
//             d.length > 0 && (o = v.modes[this.viewMode].navStep * (d.hasClass("prev") ? -1 : 1),
//                 0 === this.viewMode ? (this.viewDate = this.moveMonth(this.viewDate, o),
//                     this._trigger("changeMonth", this.viewDate)) : (this.viewDate = this.moveYear(this.viewDate, o),
//                 1 === this.viewMode && this._trigger("changeYear", this.viewDate)),
//                 this.fill()),
//             a.hasClass("today") && (this.showMode(-2),
//                 this._setDate(n(), "linked" === this.o.todayBtn ? null : "view")),
//             a.hasClass("clear") && this.clearDates(),
//             a.hasClass("disabled") || (a.hasClass("day") && (r = parseInt(a.text(), 10) || 1,
//                 s = this.viewDate.getUTCFullYear(),
//                 l = this.viewDate.getUTCMonth(),
//             a.hasClass("old") && (0 === l ? (l = 11,
//                 s -= 1,
//                 c = !0,
//                 u = !0) : (l -= 1,
//                 c = !0)),
//             a.hasClass("new") && (11 === l ? (l = 0,
//                 s += 1,
//                 c = !0,
//                 u = !0) : (l += 1,
//                 c = !0)),
//                 this._setDate(i(s, l, r)),
//             u && this._trigger("changeYear", this.viewDate),
//             c && this._trigger("changeMonth", this.viewDate)),
//             a.hasClass("month") && (this.viewDate.setUTCDate(1),
//                 r = 1,
//                 l = a.parent().find("span").index(a),
//                 s = this.viewDate.getUTCFullYear(),
//                 this.viewDate.setUTCMonth(l),
//                 this._trigger("changeMonth", this.viewDate),
//                 1 === this.o.minViewMode ? (this._setDate(i(s, l, r)),
//                     this.showMode()) : this.showMode(-1),
//                 this.fill()),
//             (a.hasClass("year") || a.hasClass("decade") || a.hasClass("century")) && (this.viewDate.setUTCDate(1),
//                 r = 1,
//                 l = 0,
//                 s = parseInt(a.text(), 10) || 0,
//                 this.viewDate.setUTCFullYear(s),
//             a.hasClass("year") && (this._trigger("changeYear", this.viewDate),
//             2 === this.o.minViewMode && this._setDate(i(s, l, r))),
//             a.hasClass("decade") && (this._trigger("changeDecade", this.viewDate),
//             3 === this.o.minViewMode && this._setDate(i(s, l, r))),
//             a.hasClass("century") && (this._trigger("changeCentury", this.viewDate),
//             4 === this.o.minViewMode && this._setDate(i(s, l, r))),
//                 this.showMode(-1),
//                 this.fill())),
//             this.picker.is(":visible") && this._focused_from && e(this._focused_from).focus(),
//                 delete this._focused_from
//         },
//         _toggle_multidate: function(e) {
//             var t = this.dates.contains(e);
//             if (e || this.dates.clear(),
//                 -1 !== t ? (!0 === this.o.multidate || this.o.multidate > 1 || this.o.toggleActive) && this.dates.remove(t) : !1 === this.o.multidate ? (this.dates.clear(),
//                     this.dates.push(e)) : this.dates.push(e),
//             "number" == typeof this.o.multidate)
//                 for (; this.dates.length > this.o.multidate; )
//                     this.dates.remove(0)
//         },
//         _setDate: function(e, t) {
//             t && "date" !== t || this._toggle_multidate(e && new Date(e)),
//             t && "view" !== t || (this.viewDate = e && new Date(e)),
//                 this.fill(),
//                 this.setValue(),
//             t && "view" === t || this._trigger("changeDate");
//             var i;
//             this.isInput ? i = this.element : this.component && (i = this.element.find("input")),
//             i && i.change(),
//             !this.o.autoclose || t && "date" !== t || this.hide()
//         },
//         moveDay: function(e, t) {
//             var i = new Date(e);
//             return i.setUTCDate(e.getUTCDate() + t),
//                 i
//         },
//         moveWeek: function(e, t) {
//             return this.moveDay(e, 7 * t)
//         },
//         moveMonth: function(e, t) {
//             if (!r(e))
//                 return this.o.defaultViewDate;
//             if (!t)
//                 return e;
//             var i, n, a = new Date(e.valueOf()), o = a.getUTCDate(), s = a.getUTCMonth(), l = Math.abs(t);
//             if (t = t > 0 ? 1 : -1,
//             1 === l)
//                 n = -1 === t ? function() {
//                         return a.getUTCMonth() === s
//                     }
//                     : function() {
//                         return a.getUTCMonth() !== i
//                     }
//                     ,
//                     i = s + t,
//                     a.setUTCMonth(i),
//                 (0 > i || i > 11) && (i = (i + 12) % 12);
//             else {
//                 for (var c = 0; l > c; c++)
//                     a = this.moveMonth(a, t);
//                 i = a.getUTCMonth(),
//                     a.setUTCDate(o),
//                     n = function() {
//                         return i !== a.getUTCMonth()
//                     }
//             }
//             for (; n(); )
//                 a.setUTCDate(--o),
//                     a.setUTCMonth(i);
//             return a
//         },
//         moveYear: function(e, t) {
//             return this.moveMonth(e, 12 * t)
//         },
//         moveAvailableDate: function(e, t, i) {
//             do {
//                 if (e = this[i](e, t),
//                     !this.dateWithinRange(e))
//                     return !1;
//                 i = "moveDay"
//             } while (this.dateIsDisabled(e));return e
//         },
//         weekOfDateIsDisabled: function(t) {
//             return -1 !== e.inArray(t.getUTCDay(), this.o.daysOfWeekDisabled)
//         },
//         dateIsDisabled: function(t) {
//             return this.weekOfDateIsDisabled(t) || e.grep(this.o.datesDisabled, function(e) {
//                 return a(t, e)
//             }).length > 0
//         },
//         dateWithinRange: function(e) {
//             return e >= this.o.startDate && e <= this.o.endDate
//         },
//         keydown: function(e) {
//             if (this.picker.is(":visible")) {
//                 var t, i, n = !1, a = this.focusDate || this.viewDate;
//                 switch (e.keyCode) {
//                     case 27:
//                         this.focusDate ? (this.focusDate = null,
//                             this.viewDate = this.dates.get(-1) || this.viewDate,
//                             this.fill()) : this.hide(),
//                             e.preventDefault(),
//                             e.stopPropagation();
//                         break;
//                     case 37:
//                     case 38:
//                     case 39:
//                     case 40:
//                         if (!this.o.keyboardNavigation || 7 === this.o.daysOfWeekDisabled.length)
//                             break;
//                         t = 37 === e.keyCode || 38 === e.keyCode ? -1 : 1,
//                             0 === this.viewMode ? e.ctrlKey ? (i = this.moveAvailableDate(a, t, "moveYear")) && this._trigger("changeYear", this.viewDate) : e.shiftKey ? (i = this.moveAvailableDate(a, t, "moveMonth")) && this._trigger("changeMonth", this.viewDate) : 37 === e.keyCode || 39 === e.keyCode ? i = this.moveAvailableDate(a, t, "moveDay") : this.weekOfDateIsDisabled(a) || (i = this.moveAvailableDate(a, t, "moveWeek")) : 1 === this.viewMode ? (38 !== e.keyCode && 40 !== e.keyCode || (t *= 4),
//                                 i = this.moveAvailableDate(a, t, "moveMonth")) : 2 === this.viewMode && (38 !== e.keyCode && 40 !== e.keyCode || (t *= 4),
//                                 i = this.moveAvailableDate(a, t, "moveYear")),
//                         i && (this.focusDate = this.viewDate = i,
//                             this.setValue(),
//                             this.fill(),
//                             e.preventDefault());
//                         break;
//                     case 13:
//                         if (!this.o.forceParse)
//                             break;
//                         a = this.focusDate || this.dates.get(-1) || this.viewDate,
//                         this.o.keyboardNavigation && (this._toggle_multidate(a),
//                             n = !0),
//                             this.focusDate = null,
//                             this.viewDate = this.dates.get(-1) || this.viewDate,
//                             this.setValue(),
//                             this.fill(),
//                         this.picker.is(":visible") && (e.preventDefault(),
//                             e.stopPropagation(),
//                         this.o.autoclose && this.hide());
//                         break;
//                     case 9:
//                         this.focusDate = null,
//                             this.viewDate = this.dates.get(-1) || this.viewDate,
//                             this.fill(),
//                             this.hide()
//                 }
//                 if (n) {
//                     this.dates.length ? this._trigger("changeDate") : this._trigger("clearDate");
//                     var o;
//                     this.isInput ? o = this.element : this.component && (o = this.element.find("input")),
//                     o && o.change()
//                 }
//             } else
//                 40 !== e.keyCode && 27 !== e.keyCode || (this.show(),
//                     e.stopPropagation())
//         },
//         showMode: function(e) {
//             e && (this.viewMode = Math.max(this.o.minViewMode, Math.min(this.o.maxViewMode, this.viewMode + e))),
//                 this.picker.children("div").hide().filter(".datepicker-" + v.modes[this.viewMode].clsName).show(),
//                 this.updateNavArrows()
//         }
//     };
//     var d = function(t, i) {
//         e(t).data("datepicker", this),
//             this.element = e(t),
//             this.inputs = e.map(i.inputs, function(e) {
//                 return e.jquery ? e[0] : e
//             }),
//             delete i.inputs,
//             f.call(e(this.inputs), i).on("changeDate", e.proxy(this.dateUpdated, this)),
//             this.pickers = e.map(this.inputs, function(t) {
//                 return e(t).data("datepicker")
//             }),
//             this.updateDates()
//     };
//     d.prototype = {
//         updateDates: function() {
//             this.dates = e.map(this.pickers, function(e) {
//                 return e.getUTCDate()
//             }),
//                 this.updateRanges()
//         },
//         updateRanges: function() {
//             var t = e.map(this.dates, function(e) {
//                 return e.valueOf()
//             });
//             e.each(this.pickers, function(e, i) {
//                 i.setRange(t)
//             })
//         },
//         dateUpdated: function(t) {
//             if (!this.updating) {
//                 this.updating = !0;
//                 var i = e(t.target).data("datepicker");
//                 if (void 0 !== i) {
//                     var n = i.getUTCDate()
//                         , a = e.inArray(t.target, this.inputs)
//                         , o = a - 1
//                         , r = a + 1
//                         , s = this.inputs.length;
//                     if (-1 !== a) {
//                         if (e.each(this.pickers, function(e, t) {
//                             t.getUTCDate() || t.setUTCDate(n)
//                         }),
//                         n < this.dates[o])
//                             for (; o >= 0 && n < this.dates[o]; )
//                                 this.pickers[o--].setUTCDate(n);
//                         else if (n > this.dates[r])
//                             for (; s > r && n > this.dates[r]; )
//                                 this.pickers[r++].setUTCDate(n);
//                         this.updateDates(),
//                             delete this.updating
//                     }
//                 }
//             }
//         },
//         remove: function() {
//             e.map(this.pickers, function(e) {
//                 e.remove()
//             }),
//                 delete this.element.data().datepicker
//         }
//     };
//     var h = e.fn.datepicker
//         , f = function(i) {
//         var n = Array.apply(null, arguments);
//         n.shift();
//         var a;
//         if (this.each(function() {
//             var t = e(this)
//                 , o = t.data("datepicker")
//                 , r = "object" == typeof i && i;
//             if (!o) {
//                 var c = s(this, "date")
//                     , h = l(e.extend({}, p, c, r).language)
//                     , f = e.extend({}, p, h, c, r);
//                 t.hasClass("input-daterange") || f.inputs ? (e.extend(f, {
//                     inputs: f.inputs || t.find("input").toArray()
//                 }),
//                     o = new d(this,f)) : o = new u(this,f),
//                     t.data("datepicker", o)
//             }
//             "string" == typeof i && "function" == typeof o[i] && (a = o[i].apply(o, n))
//         }),
//         a === t || a instanceof u || a instanceof d)
//             return this;
//         if (this.length > 1)
//             throw new Error("Using only allowed for the collection of a single element (" + i + " function)");
//         return a
//     };
//     e.fn.datepicker = f;
//     var p = e.fn.datepicker.defaults = {
//         assumeNearbyYear: !1,
//         autoclose: !1,
//         beforeShowDay: e.noop,
//         beforeShowMonth: e.noop,
//         beforeShowYear: e.noop,
//         beforeShowDecade: e.noop,
//         beforeShowCentury: e.noop,
//         calendarWeeks: !1,
//         clearBtn: !1,
//         toggleActive: !1,
//         daysOfWeekDisabled: [],
//         daysOfWeekHighlighted: [],
//         datesDisabled: [],
//         endDate: 1 / 0,
//         forceParse: !0,
//         format: "mm/dd/yyyy",
//         keyboardNavigation: !0,
//         language: "en",
//         minViewMode: 0,
//         maxViewMode: 4,
//         multidate: !1,
//         multidateSeparator: ",",
//         orientation: "auto",
//         rtl: !1,
//         startDate: -1 / 0,
//         startView: 0,
//         todayBtn: !1,
//         todayHighlight: !1,
//         weekStart: 0,
//         disableTouchKeyboard: !1,
//         enableOnReadonly: !0,
//         showOnFocus: !0,
//         zIndexOffset: 10,
//         container: "body",
//         immediateUpdates: !1,
//         title: "",
//         templates: {
//             leftArrow: "&laquo;",
//             rightArrow: "&raquo;"
//         }
//     }
//         , g = e.fn.datepicker.locale_opts = ["format", "rtl", "weekStart"];
//     e.fn.datepicker.Constructor = u;
//     var m = e.fn.datepicker.dates = {
//         en: {
//             days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
//             daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
//             daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
//             months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
//             monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
//             today: "Today",
//             clear: "Clear",
//             titleFormat: "MM yyyy"
//         }
//     }
//         , v = {
//         modes: [{
//             clsName: "days",
//             navFnc: "Month",
//             navStep: 1
//         }, {
//             clsName: "months",
//             navFnc: "FullYear",
//             navStep: 1
//         }, {
//             clsName: "years",
//             navFnc: "FullYear",
//             navStep: 10
//         }, {
//             clsName: "decades",
//             navFnc: "FullDecade",
//             navStep: 100
//         }, {
//             clsName: "centuries",
//             navFnc: "FullCentury",
//             navStep: 1e3
//         }],
//         isLeapYear: function(e) {
//             return e % 4 == 0 && e % 100 != 0 || e % 400 == 0
//         },
//         getDaysInMonth: function(e, t) {
//             return [31, v.isLeapYear(e) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][t]
//         },
//         validParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,
//         nonpunctuation: /[^ -\/:-@\u5e74\u6708\u65e5\[-`{-~\t\n\r]+/g,
//         parseFormat: function(e) {
//             if ("function" == typeof e.toValue && "function" == typeof e.toDisplay)
//                 return e;
//             var t = e.replace(this.validParts, "\0").split("\0")
//                 , i = e.match(this.validParts);
//             if (!t || !t.length || !i || 0 === i.length)
//                 throw new Error("Invalid date format.");
//             return {
//                 separators: t,
//                 parts: i
//             }
//         },
//         parseDate: function(a, o, r, s) {
//             function l(e, t) {
//                 return !0 === t && (t = 10),
//                 100 > e && (e += 2e3) > (new Date).getFullYear() + t && (e -= 100),
//                     e
//             }
//             function c() {
//                 var e = this.slice(0, C[f].length)
//                     , t = C[f].slice(0, e.length);
//                 return e.toLowerCase() === t.toLowerCase()
//             }
//             if (!a)
//                 return t;
//             if (a instanceof Date)
//                 return a;
//             if ("string" == typeof o && (o = v.parseFormat(o)),
//                 o.toValue)
//                 return o.toValue(a, o, r);
//             var d, h, f, p, g = /([\-+]\d+)([dmwy])/, C = a.match(/([\-+]\d+)([dmwy])/g), y = {
//                 d: "moveDay",
//                 m: "moveMonth",
//                 w: "moveWeek",
//                 y: "moveYear"
//             }, w = {
//                 yesterday: "-1d",
//                 today: "+0d",
//                 tomorrow: "+1d"
//             };
//             if (/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(a)) {
//                 for (a = new Date,
//                          f = 0; f < C.length; f++)
//                     d = g.exec(C[f]),
//                         h = parseInt(d[1]),
//                         p = y[d[2]],
//                         a = u.prototype[p](a, h);
//                 return i(a.getUTCFullYear(), a.getUTCMonth(), a.getUTCDate())
//             }
//             if (void 0 !== w[a] && (a = w[a],
//                 C = a.match(/([\-+]\d+)([dmwy])/g),
//                 /^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(a))) {
//                 for (a = new Date,
//                          f = 0; f < C.length; f++)
//                     d = g.exec(C[f]),
//                         h = parseInt(d[1]),
//                         p = y[d[2]],
//                         a = u.prototype[p](a, h);
//                 return i(a.getUTCFullYear(), a.getUTCMonth(), a.getUTCDate())
//             }
//             C = a && a.match(this.nonpunctuation) || [],
//                 a = new Date;
//             var b, k, x = {}, $ = ["yyyy", "yy", "M", "MM", "m", "mm", "d", "dd"], T = {
//                 yyyy: function(e, t) {
//                     return e.setUTCFullYear(s ? l(t, s) : t)
//                 },
//                 yy: function(e, t) {
//                     return e.setUTCFullYear(s ? l(t, s) : t)
//                 },
//                 m: function(e, t) {
//                     if (isNaN(e))
//                         return e;
//                     for (t -= 1; 0 > t; )
//                         t += 12;
//                     for (t %= 12,
//                              e.setUTCMonth(t); e.getUTCMonth() !== t; )
//                         e.setUTCDate(e.getUTCDate() - 1);
//                     return e
//                 },
//                 d: function(e, t) {
//                     return e.setUTCDate(t)
//                 }
//             };
//             T.M = T.MM = T.mm = T.m,
//                 T.dd = T.d,
//                 a = n();
//             var F = o.parts.slice();
//             if (C.length !== F.length && (F = e(F).filter(function(t, i) {
//                 return -1 !== e.inArray(i, $)
//             }).toArray()),
//             C.length === F.length) {
//                 var D;
//                 for (f = 0,
//                          D = F.length; D > f; f++) {
//                     if (b = parseInt(C[f], 10),
//                         d = F[f],
//                         isNaN(b))
//                         switch (d) {
//                             case "MM":
//                                 k = e(m[r].months).filter(c),
//                                     b = e.inArray(k[0], m[r].months) + 1;
//                                 break;
//                             case "M":
//                                 k = e(m[r].monthsShort).filter(c),
//                                     b = e.inArray(k[0], m[r].monthsShort) + 1
//                         }
//                     x[d] = b
//                 }
//                 var _, A;
//                 for (f = 0; f < $.length; f++)
//                     (A = $[f])in x && !isNaN(x[A]) && (_ = new Date(a),
//                         T[A](_, x[A]),
//                     isNaN(_) || (a = _))
//             }
//             return a
//         },
//         formatDate: function(t, i, n) {
//             if (!t)
//                 return "";
//             if ("string" == typeof i && (i = v.parseFormat(i)),
//                 i.toDisplay)
//                 return i.toDisplay(t, i, n);
//             var a = {
//                 d: t.getUTCDate(),
//                 D: m[n].daysShort[t.getUTCDay()],
//                 DD: m[n].days[t.getUTCDay()],
//                 m: t.getUTCMonth() + 1,
//                 M: m[n].monthsShort[t.getUTCMonth()],
//                 MM: m[n].months[t.getUTCMonth()],
//                 yy: t.getUTCFullYear().toString().substring(2),
//                 yyyy: t.getUTCFullYear()
//             };
//             a.dd = (a.d < 10 ? "0" : "") + a.d,
//                 a.mm = (a.m < 10 ? "0" : "") + a.m,
//                 t = [];
//             for (var o = e.extend([], i.separators), r = 0, s = i.parts.length; s >= r; r++)
//                 o.length && t.push(o.shift()),
//                     t.push(a[i.parts[r]]);
//             return t.join("")
//         },
//         headTemplate: '<thead><tr><th colspan="7" class="datepicker-title"></th></tr><tr><th class="prev">&laquo;</th><th colspan="5" class="datepicker-switch"></th><th class="next">&raquo;</th></tr></thead>',
//         contTemplate: '<tbody><tr><td colspan="7"></td></tr></tbody>',
//         footTemplate: '<tfoot><tr><th colspan="7" class="today"></th></tr><tr><th colspan="7" class="clear"></th></tr></tfoot>'
//     };
//     v.template = '<div class="datepicker"><div class="datepicker-days"><table class=" table-condensed">' + v.headTemplate + "<tbody></tbody>" + v.footTemplate + '</table></div><div class="datepicker-months"><table class="table-condensed">' + v.headTemplate + v.contTemplate + v.footTemplate + '</table></div><div class="datepicker-years"><table class="table-condensed">' + v.headTemplate + v.contTemplate + v.footTemplate + '</table></div><div class="datepicker-decades"><table class="table-condensed">' + v.headTemplate + v.contTemplate + v.footTemplate + '</table></div><div class="datepicker-centuries"><table class="table-condensed">' + v.headTemplate + v.contTemplate + v.footTemplate + "</table></div></div>",
//         e.fn.datepicker.DPGlobal = v,
//         e.fn.datepicker.noConflict = function() {
//             return e.fn.datepicker = h,
//                 this
//         }
//         ,
//         e.fn.datepicker.version = "1.6.0",
//         e(document).on("focus.datepicker.data-api click.datepicker.data-api", '[data-provide="datepicker"]', function(t) {
//             var i = e(this);
//             i.data("datepicker") || (t.preventDefault(),
//                 f.call(i, "show"))
//         }),
//         e(function() {
//             f.call(e('[data-provide="datepicker-inline"]'))
//         })
// }),
//     function(e, t) {
//         function i(t, i) {
//             var a, o, r, s = t.nodeName.toLowerCase();
//             return "area" === s ? (a = t.parentNode,
//                 o = a.name,
//             !(!t.href || !o || "map" !== a.nodeName.toLowerCase()) && (!!(r = e("img[usemap=#" + o + "]")[0]) && n(r))) : (/input|select|textarea|button|object/.test(s) ? !t.disabled : "a" === s ? t.href || i : i) && n(t)
//         }
//         function n(t) {
//             return e.expr.filters.visible(t) && !e(t).parents().andSelf().filter(function() {
//                 return "hidden" === e.css(this, "visibility")
//             }).length
//         }
//         var a = 0
//             , o = /^ui-id-\d+$/;
//         e.ui = e.ui || {},
//         e.ui.version || (e.extend(e.ui, {
//             version: "1.9.2",
//             keyCode: {
//                 BACKSPACE: 8,
//                 COMMA: 188,
//                 DELETE: 46,
//                 DOWN: 40,
//                 END: 35,
//                 ENTER: 13,
//                 ESCAPE: 27,
//                 HOME: 36,
//                 LEFT: 37,
//                 NUMPAD_ADD: 107,
//                 NUMPAD_DECIMAL: 110,
//                 NUMPAD_DIVIDE: 111,
//                 NUMPAD_ENTER: 108,
//                 NUMPAD_MULTIPLY: 106,
//                 NUMPAD_SUBTRACT: 109,
//                 PAGE_DOWN: 34,
//                 PAGE_UP: 33,
//                 PERIOD: 190,
//                 RIGHT: 39,
//                 SPACE: 32,
//                 TAB: 9,
//                 UP: 38
//             }
//         }),
//             e.fn.extend({
//                 _focus: e.fn.focus,
//                 focus: function(t, i) {
//                     return "number" == typeof t ? this.each(function() {
//                         var n = this;
//                         setTimeout(function() {
//                             e(n).focus(),
//                             i && i.call(n)
//                         }, t)
//                     }) : this._focus.apply(this, arguments)
//                 },
//                 scrollParent: function() {
//                     var t;
//                     return t = e.ui.ie && /(static|relative)/.test(this.css("position")) || /absolute/.test(this.css("position")) ? this.parents().filter(function() {
//                         return /(relative|absolute|fixed)/.test(e.css(this, "position")) && /(auto|scroll)/.test(e.css(this, "overflow") + e.css(this, "overflow-y") + e.css(this, "overflow-x"))
//                     }).eq(0) : this.parents().filter(function() {
//                         return /(auto|scroll)/.test(e.css(this, "overflow") + e.css(this, "overflow-y") + e.css(this, "overflow-x"))
//                     }).eq(0),
//                         /fixed/.test(this.css("position")) || !t.length ? e(document) : t
//                 },
//                 zIndex: function(i) {
//                     if (i !== t)
//                         return this.css("zIndex", i);
//                     if (this.length)
//                         for (var n, a, o = e(this[0]); o.length && o[0] !== document; ) {
//                             if (("absolute" === (n = o.css("position")) || "relative" === n || "fixed" === n) && (a = parseInt(o.css("zIndex"), 10),
//                             !isNaN(a) && 0 !== a))
//                                 return a;
//                             o = o.parent()
//                         }
//                     return 0
//                 },
//                 uniqueId: function() {
//                     return this.each(function() {
//                         this.id || (this.id = "ui-id-" + ++a)
//                     })
//                 },
//                 removeUniqueId: function() {
//                     return this.each(function() {
//                         o.test(this.id) && e(this).removeAttr("id")
//                     })
//                 }
//             }),
//             e.extend(e.expr[":"], {
//                 data: e.expr.createPseudo ? e.expr.createPseudo(function(t) {
//                     return function(i) {
//                         return !!e.data(i, t)
//                     }
//                 }) : function(t, i, n) {
//                     return !!e.data(t, n[3])
//                 }
//                 ,
//                 focusable: function(t) {
//                     return i(t, !isNaN(e.attr(t, "tabindex")))
//                 },
//                 tabbable: function(t) {
//                     var n = e.attr(t, "tabindex")
//                         , a = isNaN(n);
//                     return (a || n >= 0) && i(t, !a)
//                 }
//             }),
//             e(function() {
//                 var t = document.body
//                     , i = t.appendChild(i = document.createElement("div"));
//                 i.offsetHeight,
//                     e.extend(i.style, {
//                         minHeight: "100px",
//                         height: "auto",
//                         padding: 0,
//                         borderWidth: 0
//                     }),
//                     e.support.minHeight = 100 === i.offsetHeight,
//                     e.support.selectstart = "onselectstart"in i,
//                     t.removeChild(i).style.display = "none"
//             }),
//         e("<a>").outerWidth(1).jquery || e.each(["Width", "Height"], function(i, n) {
//             function a(t, i, n, a) {
//                 return e.each(o, function() {
//                     i -= parseFloat(e.css(t, "padding" + this)) || 0,
//                     n && (i -= parseFloat(e.css(t, "border" + this + "Width")) || 0),
//                     a && (i -= parseFloat(e.css(t, "margin" + this)) || 0)
//                 }),
//                     i
//             }
//             var o = "Width" === n ? ["Left", "Right"] : ["Top", "Bottom"]
//                 , r = n.toLowerCase()
//                 , s = {
//                 innerWidth: e.fn.innerWidth,
//                 innerHeight: e.fn.innerHeight,
//                 outerWidth: e.fn.outerWidth,
//                 outerHeight: e.fn.outerHeight
//             };
//             e.fn["inner" + n] = function(i) {
//                 return i === t ? s["inner" + n].call(this) : this.each(function() {
//                     e(this).css(r, a(this, i) + "px")
//                 })
//             }
//                 ,
//                 e.fn["outer" + n] = function(t, i) {
//                     return "number" != typeof t ? s["outer" + n].call(this, t) : this.each(function() {
//                         e(this).css(r, a(this, t, !0, i) + "px")
//                     })
//                 }
//         }),
//         e("<a>").data("a-b", "a").removeData("a-b").data("a-b") && (e.fn.removeData = function(t) {
//             return function(i) {
//                 return arguments.length ? t.call(this, e.camelCase(i)) : t.call(this)
//             }
//         }(e.fn.removeData)),
//             function() {
//                 var t = /msie ([\w.]+)/.exec(navigator.userAgent.toLowerCase()) || [];
//                 e.ui.ie = !!t.length,
//                     e.ui.ie6 = 6 === parseFloat(t[1], 10)
//             }(),
//             e.fn.extend({
//                 disableSelection: function() {
//                     return this.bind((e.support.selectstart ? "selectstart" : "mousedown") + ".ui-disableSelection", function(e) {
//                         e.preventDefault()
//                     })
//                 },
//                 enableSelection: function() {
//                     return this.unbind(".ui-disableSelection")
//                 }
//             }),
//             e.extend(e.ui, {
//                 plugin: {
//                     add: function(t, i, n) {
//                         var a, o = e.ui[t].prototype;
//                         for (a in n)
//                             o.plugins[a] = o.plugins[a] || [],
//                                 o.plugins[a].push([i, n[a]])
//                     },
//                     call: function(e, t, i) {
//                         var n, a = e.plugins[t];
//                         if (a && e.element[0].parentNode && 11 !== e.element[0].parentNode.nodeType)
//                             for (n = 0; n < a.length; n++)
//                                 e.options[a[n][0]] && a[n][1].apply(e.element, i)
//                     }
//                 },
//                 contains: e.contains,
//                 hasScroll: function(t, i) {
//                     if ("hidden" === e(t).css("overflow"))
//                         return !1;
//                     var n = i && "left" === i ? "scrollLeft" : "scrollTop"
//                         , a = !1;
//                     return t[n] > 0 || (t[n] = 1,
//                         a = t[n] > 0,
//                         t[n] = 0,
//                         a)
//                 },
//                 isOverAxis: function(e, t, i) {
//                     return e > t && e < t + i
//                 },
//                 isOver: function(t, i, n, a, o, r) {
//                     return e.ui.isOverAxis(t, n, o) && e.ui.isOverAxis(i, a, r)
//                 }
//             }))
//     }(jQuery),
//     function(e, t) {
//         var i = 0
//             , n = Array.prototype.slice
//             , a = e.cleanData;
//         e.cleanData = function(t) {
//             for (var i, n = 0; null != (i = t[n]); n++)
//                 try {
//                     e(i).triggerHandler("remove")
//                 } catch (e) {}
//             a(t)
//         }
//             ,
//             e.widget = function(t, i, n) {
//                 var a, o, r, s, l = t.split(".")[0];
//                 t = t.split(".")[1],
//                     a = l + "-" + t,
//                 n || (n = i,
//                     i = e.Widget),
//                     e.expr[":"][a.toLowerCase()] = function(t) {
//                         return !!e.data(t, a)
//                     }
//                     ,
//                     e[l] = e[l] || {},
//                     o = e[l][t],
//                     r = e[l][t] = function(e, t) {
//                         if (!this._createWidget)
//                             return new r(e,t);
//                         arguments.length && this._createWidget(e, t)
//                     }
//                     ,
//                     e.extend(r, o, {
//                         version: n.version,
//                         _proto: e.extend({}, n),
//                         _childConstructors: []
//                     }),
//                     (s = new i).options = e.widget.extend({}, s.options),
//                     e.each(n, function(t, a) {
//                         e.isFunction(a) && (n[t] = function() {
//                             var e = function() {
//                                 return i.prototype[t].apply(this, arguments)
//                             }
//                                 , n = function(e) {
//                                 return i.prototype[t].apply(this, e)
//                             };
//                             return function() {
//                                 var t, i = this._super, o = this._superApply;
//                                 return this._super = e,
//                                     this._superApply = n,
//                                     t = a.apply(this, arguments),
//                                     this._super = i,
//                                     this._superApply = o,
//                                     t
//                             }
//                         }())
//                     }),
//                     r.prototype = e.widget.extend(s, {
//                         widgetEventPrefix: o ? s.widgetEventPrefix : t
//                     }, n, {
//                         constructor: r,
//                         namespace: l,
//                         widgetName: t,
//                         widgetBaseClass: a,
//                         widgetFullName: a
//                     }),
//                     o ? (e.each(o._childConstructors, function(t, i) {
//                         var n = i.prototype;
//                         e.widget(n.namespace + "." + n.widgetName, r, i._proto)
//                     }),
//                         delete o._childConstructors) : i._childConstructors.push(r),
//                     e.widget.bridge(t, r)
//             }
//             ,
//             e.widget.extend = function(i) {
//                 for (var a, o, r = n.call(arguments, 1), s = 0, l = r.length; s < l; s++)
//                     for (a in r[s])
//                         o = r[s][a],
//                         r[s].hasOwnProperty(a) && o !== t && (e.isPlainObject(o) ? i[a] = e.isPlainObject(i[a]) ? e.widget.extend({}, i[a], o) : e.widget.extend({}, o) : i[a] = o);
//                 return i
//             }
//             ,
//             e.widget.bridge = function(i, a) {
//                 var o = a.prototype.widgetFullName || i;
//                 e.fn[i] = function(r) {
//                     var s = "string" == typeof r
//                         , l = n.call(arguments, 1)
//                         , c = this;
//                     return r = !s && l.length ? e.widget.extend.apply(null, [r].concat(l)) : r,
//                         s ? this.each(function() {
//                             var n, a = e.data(this, o);
//                             return a ? e.isFunction(a[r]) && "_" !== r.charAt(0) ? (n = a[r].apply(a, l)) !== a && n !== t ? (c = n && n.jquery ? c.pushStack(n.get()) : n,
//                                 !1) : void 0 : e.error("no such method '" + r + "' for " + i + " widget instance") : e.error("cannot call methods on " + i + " prior to initialization; attempted to call method '" + r + "'")
//                         }) : this.each(function() {
//                             var t = e.data(this, o);
//                             t ? t.option(r || {})._init() : e.data(this, o, new a(r,this))
//                         }),
//                         c
//                 }
//             }
//             ,
//             e.Widget = function() {}
//             ,
//             e.Widget._childConstructors = [],
//             e.Widget.prototype = {
//                 widgetName: "widget",
//                 widgetEventPrefix: "",
//                 defaultElement: "<div>",
//                 options: {
//                     disabled: !1,
//                     create: null
//                 },
//                 _createWidget: function(t, n) {
//                     n = e(n || this.defaultElement || this)[0],
//                         this.element = e(n),
//                         this.uuid = i++,
//                         this.eventNamespace = "." + this.widgetName + this.uuid,
//                         this.options = e.widget.extend({}, this.options, this._getCreateOptions(), t),
//                         this.bindings = e(),
//                         this.hoverable = e(),
//                         this.focusable = e(),
//                     n !== this && (e.data(n, this.widgetName, this),
//                         e.data(n, this.widgetFullName, this),
//                         this._on(!0, this.element, {
//                             remove: function(e) {
//                                 e.target === n && this.destroy()
//                             }
//                         }),
//                         this.document = e(n.style ? n.ownerDocument : n.document || n),
//                         this.window = e(this.document[0].defaultView || this.document[0].parentWindow)),
//                         this._create(),
//                         this._trigger("create", null, this._getCreateEventData()),
//                         this._init()
//                 },
//                 _getCreateOptions: e.noop,
//                 _getCreateEventData: e.noop,
//                 _create: e.noop,
//                 _init: e.noop,
//                 destroy: function() {
//                     this._destroy(),
//                         this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),
//                         this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName + "-disabled ui-state-disabled"),
//                         this.bindings.unbind(this.eventNamespace),
//                         this.hoverable.removeClass("ui-state-hover"),
//                         this.focusable.removeClass("ui-state-focus")
//                 },
//                 _destroy: e.noop,
//                 widget: function() {
//                     return this.element
//                 },
//                 option: function(i, n) {
//                     var a, o, r, s = i;
//                     if (0 === arguments.length)
//                         return e.widget.extend({}, this.options);
//                     if ("string" == typeof i)
//                         if (s = {},
//                             a = i.split("."),
//                             i = a.shift(),
//                             a.length) {
//                             for (o = s[i] = e.widget.extend({}, this.options[i]),
//                                      r = 0; r < a.length - 1; r++)
//                                 o[a[r]] = o[a[r]] || {},
//                                     o = o[a[r]];
//                             if (i = a.pop(),
//                             n === t)
//                                 return o[i] === t ? null : o[i];
//                             o[i] = n
//                         } else {
//                             if (n === t)
//                                 return this.options[i] === t ? null : this.options[i];
//                             s[i] = n
//                         }
//                     return this._setOptions(s),
//                         this
//                 },
//                 _setOptions: function(e) {
//                     var t;
//                     for (t in e)
//                         this._setOption(t, e[t]);
//                     return this
//                 },
//                 _setOption: function(e, t) {
//                     return this.options[e] = t,
//                     "disabled" === e && (this.widget().toggleClass(this.widgetFullName + "-disabled ui-state-disabled", !!t).attr("aria-disabled", t),
//                         this.hoverable.removeClass("ui-state-hover"),
//                         this.focusable.removeClass("ui-state-focus")),
//                         this
//                 },
//                 enable: function() {
//                     return this._setOption("disabled", !1)
//                 },
//                 disable: function() {
//                     return this._setOption("disabled", !0)
//                 },
//                 _on: function(t, i, n) {
//                     var a, o = this;
//                     "boolean" != typeof t && (n = i,
//                         i = t,
//                         t = !1),
//                         n ? (i = a = e(i),
//                             this.bindings = this.bindings.add(i)) : (n = i,
//                             i = this.element,
//                             a = this.widget()),
//                         e.each(n, function(n, r) {
//                             function s() {
//                                 if (t || !0 !== o.options.disabled && !e(this).hasClass("ui-state-disabled"))
//                                     return ("string" == typeof r ? o[r] : r).apply(o, arguments)
//                             }
//                             "string" != typeof r && (s.guid = r.guid = r.guid || s.guid || e.guid++);
//                             var l = n.match(/^(\w+)\s*(.*)$/)
//                                 , c = l[1] + o.eventNamespace
//                                 , u = l[2];
//                             u ? a.delegate(u, c, s) : i.bind(c, s)
//                         })
//                 },
//                 _off: function(e, t) {
//                     t = (t || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace,
//                         e.unbind(t).undelegate(t)
//                 },
//                 _delay: function(e, t) {
//                     var i = this;
//                     return setTimeout(function() {
//                         return ("string" == typeof e ? i[e] : e).apply(i, arguments)
//                     }, t || 0)
//                 },
//                 _hoverable: function(t) {
//                     this.hoverable = this.hoverable.add(t),
//                         this._on(t, {
//                             mouseenter: function(t) {
//                                 e(t.currentTarget).addClass("ui-state-hover")
//                             },
//                             mouseleave: function(t) {
//                                 e(t.currentTarget).removeClass("ui-state-hover")
//                             }
//                         })
//                 },
//                 _focusable: function(t) {
//                     this.focusable = this.focusable.add(t),
//                         this._on(t, {
//                             focusin: function(t) {
//                                 e(t.currentTarget).addClass("ui-state-focus")
//                             },
//                             focusout: function(t) {
//                                 e(t.currentTarget).removeClass("ui-state-focus")
//                             }
//                         })
//                 },
//                 _trigger: function(t, i, n) {
//                     var a, o, r = this.options[t];
//                     if (n = n || {},
//                         i = e.Event(i),
//                         i.type = (t === this.widgetEventPrefix ? t : this.widgetEventPrefix + t).toLowerCase(),
//                         i.target = this.element[0],
//                         o = i.originalEvent)
//                         for (a in o)
//                             a in i || (i[a] = o[a]);
//                     return this.element.trigger(i, n),
//                         !(e.isFunction(r) && !1 === r.apply(this.element[0], [i].concat(n)) || i.isDefaultPrevented())
//                 }
//             },
//             e.each({
//                 show: "fadeIn",
//                 hide: "fadeOut"
//             }, function(t, i) {
//                 e.Widget.prototype["_" + t] = function(n, a, o) {
//                     "string" == typeof a && (a = {
//                         effect: a
//                     });
//                     var r, s = a ? !0 === a || "number" == typeof a ? i : a.effect || i : t;
//                     "number" == typeof (a = a || {}) && (a = {
//                         duration: a
//                     }),
//                         r = !e.isEmptyObject(a),
//                         a.complete = o,
//                     a.delay && n.delay(a.delay),
//                         r && e.effects && (e.effects.effect[s] || !1 !== e.uiBackCompat && e.effects[s]) ? n[t](a) : s !== t && n[s] ? n[s](a.duration, a.easing, o) : n.queue(function(i) {
//                             e(this)[t](),
//                             o && o.call(n[0]),
//                                 i()
//                         })
//                 }
//             }),
//         !1 !== e.uiBackCompat && (e.Widget.prototype._getCreateOptions = function() {
//                 return e.metadata && e.metadata.get(this.element[0])[this.widgetName]
//             }
//         )
//     }(jQuery),
//     function(e, t) {
//         function i(e, t, i) {
//             return [parseInt(e[0], 10) * (h.test(e[0]) ? t / 100 : 1), parseInt(e[1], 10) * (h.test(e[1]) ? i / 100 : 1)]
//         }
//         function n(t, i) {
//             return parseInt(e.css(t, i), 10) || 0
//         }
//         e.ui = e.ui || {};
//         var a, o = Math.max, r = Math.abs, s = Math.round, l = /left|center|right/, c = /top|center|bottom/, u = /[\+\-]\d+%?/, d = /^\w+/, h = /%$/, f = e.fn.position;
//         e.position = {
//             scrollbarWidth: function() {
//                 if (a !== t)
//                     return a;
//                 var i, n, o = e("<div style='display:block;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"), r = o.children()[0];
//                 return e("body").append(o),
//                     i = r.offsetWidth,
//                     o.css("overflow", "scroll"),
//                     n = r.offsetWidth,
//                 i === n && (n = o[0].clientWidth),
//                     o.remove(),
//                     a = i - n
//             },
//             getScrollInfo: function(t) {
//                 var i = t.isWindow ? "" : t.element.css("overflow-x")
//                     , n = t.isWindow ? "" : t.element.css("overflow-y")
//                     , a = "scroll" === i || "auto" === i && t.width < t.element[0].scrollWidth
//                     , o = "scroll" === n || "auto" === n && t.height < t.element[0].scrollHeight;
//                 return {
//                     width: a ? e.position.scrollbarWidth() : 0,
//                     height: o ? e.position.scrollbarWidth() : 0
//                 }
//             },
//             getWithinInfo: function(t) {
//                 var i = e(t || window)
//                     , n = e.isWindow(i[0]);
//                 return {
//                     element: i,
//                     isWindow: n,
//                     offset: i.offset() || {
//                         left: 0,
//                         top: 0
//                     },
//                     scrollLeft: i.scrollLeft(),
//                     scrollTop: i.scrollTop(),
//                     width: n ? i.width() : i.outerWidth(),
//                     height: n ? i.height() : i.outerHeight()
//                 }
//             }
//         },
//             e.fn.position = function(t) {
//                 if (!t || !t.of)
//                     return f.apply(this, arguments);
//                 t = e.extend({}, t);
//                 var a, h, p, g, m, v = e(t.of), C = e.position.getWithinInfo(t.within), y = e.position.getScrollInfo(C), w = v[0], b = (t.collision || "flip").split(" "), k = {};
//                 return 9 === w.nodeType ? (h = v.width(),
//                     p = v.height(),
//                     g = {
//                         top: 0,
//                         left: 0
//                     }) : e.isWindow(w) ? (h = v.width(),
//                     p = v.height(),
//                     g = {
//                         top: v.scrollTop(),
//                         left: v.scrollLeft()
//                     }) : w.preventDefault ? (t.at = "left top",
//                     h = p = 0,
//                     g = {
//                         top: w.pageY,
//                         left: w.pageX
//                     }) : (h = v.outerWidth(),
//                     p = v.outerHeight(),
//                     g = v.offset()),
//                     m = e.extend({}, g),
//                     e.each(["my", "at"], function() {
//                         var e, i, n = (t[this] || "").split(" ");
//                         1 === n.length && (n = l.test(n[0]) ? n.concat(["center"]) : c.test(n[0]) ? ["center"].concat(n) : ["center", "center"]),
//                             n[0] = l.test(n[0]) ? n[0] : "center",
//                             n[1] = c.test(n[1]) ? n[1] : "center",
//                             e = u.exec(n[0]),
//                             i = u.exec(n[1]),
//                             k[this] = [e ? e[0] : 0, i ? i[0] : 0],
//                             t[this] = [d.exec(n[0])[0], d.exec(n[1])[0]]
//                     }),
//                 1 === b.length && (b[1] = b[0]),
//                     "right" === t.at[0] ? m.left += h : "center" === t.at[0] && (m.left += h / 2),
//                     "bottom" === t.at[1] ? m.top += p : "center" === t.at[1] && (m.top += p / 2),
//                     a = i(k.at, h, p),
//                     m.left += a[0],
//                     m.top += a[1],
//                     this.each(function() {
//                         var l, c, u = e(this), d = u.outerWidth(), f = u.outerHeight(), w = n(this, "marginLeft"), x = n(this, "marginTop"), $ = d + w + n(this, "marginRight") + y.width, T = f + x + n(this, "marginBottom") + y.height, F = e.extend({}, m), D = i(k.my, u.outerWidth(), u.outerHeight());
//                         "right" === t.my[0] ? F.left -= d : "center" === t.my[0] && (F.left -= d / 2),
//                             "bottom" === t.my[1] ? F.top -= f : "center" === t.my[1] && (F.top -= f / 2),
//                             F.left += D[0],
//                             F.top += D[1],
//                         e.support.offsetFractions || (F.left = s(F.left),
//                             F.top = s(F.top)),
//                             l = {
//                                 marginLeft: w,
//                                 marginTop: x
//                             },
//                             e.each(["left", "top"], function(i, n) {
//                                 e.ui.position[b[i]] && e.ui.position[b[i]][n](F, {
//                                     targetWidth: h,
//                                     targetHeight: p,
//                                     elemWidth: d,
//                                     elemHeight: f,
//                                     collisionPosition: l,
//                                     collisionWidth: $,
//                                     collisionHeight: T,
//                                     offset: [a[0] + D[0], a[1] + D[1]],
//                                     my: t.my,
//                                     at: t.at,
//                                     within: C,
//                                     elem: u
//                                 })
//                             }),
//                         e.fn.bgiframe && u.bgiframe(),
//                         t.using && (c = function(e) {
//                                 var i = g.left - F.left
//                                     , n = i + h - d
//                                     , a = g.top - F.top
//                                     , s = a + p - f
//                                     , l = {
//                                     target: {
//                                         element: v,
//                                         left: g.left,
//                                         top: g.top,
//                                         width: h,
//                                         height: p
//                                     },
//                                     element: {
//                                         element: u,
//                                         left: F.left,
//                                         top: F.top,
//                                         width: d,
//                                         height: f
//                                     },
//                                     horizontal: n < 0 ? "left" : i > 0 ? "right" : "center",
//                                     vertical: s < 0 ? "top" : a > 0 ? "bottom" : "middle"
//                                 };
//                                 h < d && r(i + n) < h && (l.horizontal = "center"),
//                                 p < f && r(a + s) < p && (l.vertical = "middle"),
//                                     o(r(i), r(n)) > o(r(a), r(s)) ? l.important = "horizontal" : l.important = "vertical",
//                                     t.using.call(this, e, l)
//                             }
//                         ),
//                             u.offset(e.extend(F, {
//                                 using: c
//                             }))
//                     })
//             }
//             ,
//             e.ui.position = {
//                 fit: {
//                     left: function(e, t) {
//                         var i, n = t.within, a = n.isWindow ? n.scrollLeft : n.offset.left, r = n.width, s = e.left - t.collisionPosition.marginLeft, l = a - s, c = s + t.collisionWidth - r - a;
//                         t.collisionWidth > r ? l > 0 && c <= 0 ? (i = e.left + l + t.collisionWidth - r - a,
//                             e.left += l - i) : e.left = c > 0 && l <= 0 ? a : l > c ? a + r - t.collisionWidth : a : l > 0 ? e.left += l : c > 0 ? e.left -= c : e.left = o(e.left - s, e.left)
//                     },
//                     top: function(e, t) {
//                         var i, n = t.within, a = n.isWindow ? n.scrollTop : n.offset.top, r = t.within.height, s = e.top - t.collisionPosition.marginTop, l = a - s, c = s + t.collisionHeight - r - a;
//                         t.collisionHeight > r ? l > 0 && c <= 0 ? (i = e.top + l + t.collisionHeight - r - a,
//                             e.top += l - i) : e.top = c > 0 && l <= 0 ? a : l > c ? a + r - t.collisionHeight : a : l > 0 ? e.top += l : c > 0 ? e.top -= c : e.top = o(e.top - s, e.top)
//                     }
//                 },
//                 flip: {
//                     left: function(e, t) {
//                         var i, n, a = t.within, o = a.offset.left + a.scrollLeft, s = a.width, l = a.isWindow ? a.scrollLeft : a.offset.left, c = e.left - t.collisionPosition.marginLeft, u = c - l, d = c + t.collisionWidth - s - l, h = "left" === t.my[0] ? -t.elemWidth : "right" === t.my[0] ? t.elemWidth : 0, f = "left" === t.at[0] ? t.targetWidth : "right" === t.at[0] ? -t.targetWidth : 0, p = -2 * t.offset[0];
//                         u < 0 ? ((i = e.left + h + f + p + t.collisionWidth - s - o) < 0 || i < r(u)) && (e.left += h + f + p) : d > 0 && ((n = e.left - t.collisionPosition.marginLeft + h + f + p - l) > 0 || r(n) < d) && (e.left += h + f + p)
//                     },
//                     top: function(e, t) {
//                         var i, n, a = t.within, o = a.offset.top + a.scrollTop, s = a.height, l = a.isWindow ? a.scrollTop : a.offset.top, c = e.top - t.collisionPosition.marginTop, u = c - l, d = c + t.collisionHeight - s - l, h = "top" === t.my[1] ? -t.elemHeight : "bottom" === t.my[1] ? t.elemHeight : 0, f = "top" === t.at[1] ? t.targetHeight : "bottom" === t.at[1] ? -t.targetHeight : 0, p = -2 * t.offset[1];
//                         u < 0 ? (n = e.top + h + f + p + t.collisionHeight - s - o,
//                         e.top + h + f + p > u && (n < 0 || n < r(u)) && (e.top += h + f + p)) : d > 0 && (i = e.top - t.collisionPosition.marginTop + h + f + p - l,
//                         e.top + h + f + p > d && (i > 0 || r(i) < d) && (e.top += h + f + p))
//                     }
//                 },
//                 flipfit: {
//                     left: function() {
//                         e.ui.position.flip.left.apply(this, arguments),
//                             e.ui.position.fit.left.apply(this, arguments)
//                     },
//                     top: function() {
//                         e.ui.position.flip.top.apply(this, arguments),
//                             e.ui.position.fit.top.apply(this, arguments)
//                     }
//                 }
//             },
//             function() {
//                 var t, i, n, a, o, r = document.getElementsByTagName("body")[0], s = document.createElement("div");
//                 t = document.createElement(r ? "div" : "body"),
//                     n = {
//                         visibility: "hidden",
//                         width: 0,
//                         height: 0,
//                         border: 0,
//                         margin: 0,
//                         background: "none"
//                     },
//                 r && e.extend(n, {
//                     position: "absolute",
//                     left: "-1000px",
//                     top: "-1000px"
//                 });
//                 for (o in n)
//                     t.style[o] = n[o];
//                 t.appendChild(s),
//                     (i = r || document.documentElement).insertBefore(t, i.firstChild),
//                     s.style.cssText = "position: absolute; left: 10.7432222px;",
//                     a = e(s).offset().left,
//                     e.support.offsetFractions = a > 10 && a < 11,
//                     t.innerHTML = "",
//                     i.removeChild(t)
//             }(),
//         !1 !== e.uiBackCompat && function(e) {
//             var i = e.fn.position;
//             e.fn.position = function(n) {
//                 if (!n || !n.offset)
//                     return i.call(this, n);
//                 var a = n.offset.split(" ")
//                     , o = n.at.split(" ");
//                 return 1 === a.length && (a[1] = a[0]),
//                 /^\d/.test(a[0]) && (a[0] = "+" + a[0]),
//                 /^\d/.test(a[1]) && (a[1] = "+" + a[1]),
//                 1 === o.length && (/left|center|right/.test(o[0]) ? o[1] = "center" : (o[1] = o[0],
//                     o[0] = "center")),
//                     i.call(this, e.extend(n, {
//                         at: o[0] + a[0] + " " + o[1] + a[1],
//                         offset: t
//                     }))
//             }
//         }(jQuery)
//     }(jQuery),
//     function(e, t) {
//         var i = !1;
//         e.widget("ui.menu", {
//             version: "1.9.2",
//             defaultElement: "<ul>",
//             delay: 300,
//             options: {
//                 icons: {
//                     submenu: "ui-icon-carat-1-e"
//                 },
//                 menus: "ul",
//                 position: {
//                     my: "left top",
//                     at: "right top"
//                 },
//                 role: "menu",
//                 blur: null,
//                 focus: null,
//                 select: null
//             },
//             _create: function() {
//                 this.activeMenu = this.element,
//                     this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content ui-corner-all").toggleClass("ui-menu-icons", !!this.element.find(".ui-icon").length).attr({
//                         role: this.options.role,
//                         tabIndex: 0
//                     }).bind("click" + this.eventNamespace, e.proxy(function(e) {
//                         this.options.disabled && e.preventDefault()
//                     }, this)),
//                 this.options.disabled && this.element.addClass("ui-state-disabled").attr("aria-disabled", "true"),
//                     this._on({
//                         "mousedown .ui-menu-item > a": function(e) {
//                             e.preventDefault()
//                         },
//                         "click .ui-state-disabled > a": function(e) {
//                             e.preventDefault()
//                         },
//                         "click .ui-menu-item:has(a)": function(t) {
//                             var n = e(t.target).closest(".ui-menu-item");
//                             !i && n.not(".ui-state-disabled").length && (i = !0,
//                                 this.select(t),
//                                 n.has(".ui-menu").length ? this.expand(t) : this.element.is(":focus") || (this.element.trigger("focus", [!0]),
//                                 this.active && 1 === this.active.parents(".ui-menu").length && clearTimeout(this.timer)))
//                         },
//                         "mouseenter .ui-menu-item": function(t) {
//                             var i = e(t.currentTarget);
//                             i.siblings().children(".ui-state-active").removeClass("ui-state-active"),
//                                 this.focus(t, i)
//                         },
//                         mouseleave: "collapseAll",
//                         "mouseleave .ui-menu": "collapseAll",
//                         focus: function(e, t) {
//                             var i = this.active || this.element.children(".ui-menu-item").eq(0);
//                             t || this.focus(e, i)
//                         },
//                         blur: function(t) {
//                             this._delay(function() {
//                                 e.contains(this.element[0], this.document[0].activeElement) || this.collapseAll(t)
//                             })
//                         },
//                         keydown: "_keydown"
//                     }),
//                     this.refresh(),
//                     this._on(this.document, {
//                         click: function(t) {
//                             e(t.target).closest(".ui-menu").length || this.collapseAll(t),
//                                 i = !1
//                         }
//                     })
//             },
//             _destroy: function() {
//                 this.element.removeAttr("aria-activedescendant").find(".ui-menu").andSelf().removeClass("ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),
//                     this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").children("a").removeUniqueId().removeClass("ui-corner-all ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function() {
//                         var t = e(this);
//                         t.data("ui-menu-submenu-carat") && t.remove()
//                     }),
//                     this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")
//             },
//             _keydown: function(t) {
//                 function i(e) {
//                     return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&")
//                 }
//                 var n, a, o, r, s, l = !0;
//                 switch (t.keyCode) {
//                     case e.ui.keyCode.PAGE_UP:
//                         this.previousPage(t);
//                         break;
//                     case e.ui.keyCode.PAGE_DOWN:
//                         this.nextPage(t);
//                         break;
//                     case e.ui.keyCode.HOME:
//                         this._move("first", "first", t);
//                         break;
//                     case e.ui.keyCode.END:
//                         this._move("last", "last", t);
//                         break;
//                     case e.ui.keyCode.UP:
//                         this.previous(t);
//                         break;
//                     case e.ui.keyCode.DOWN:
//                         this.next(t);
//                         break;
//                     case e.ui.keyCode.LEFT:
//                         this.collapse(t);
//                         break;
//                     case e.ui.keyCode.RIGHT:
//                         this.active && !this.active.is(".ui-state-disabled") && this.expand(t);
//                         break;
//                     case e.ui.keyCode.ENTER:
//                     case e.ui.keyCode.SPACE:
//                         this._activate(t);
//                         break;
//                     case e.ui.keyCode.ESCAPE:
//                         this.collapse(t);
//                         break;
//                     default:
//                         l = !1,
//                             a = this.previousFilter || "",
//                             o = String.fromCharCode(t.keyCode),
//                             r = !1,
//                             clearTimeout(this.filterTimer),
//                             o === a ? r = !0 : o = a + o,
//                             s = new RegExp("^" + i(o),"i"),
//                             n = this.activeMenu.children(".ui-menu-item").filter(function() {
//                                 return s.test(e(this).children("a").text())
//                             }),
//                         (n = r && -1 !== n.index(this.active.next()) ? this.active.nextAll(".ui-menu-item") : n).length || (o = String.fromCharCode(t.keyCode),
//                             s = new RegExp("^" + i(o),"i"),
//                             n = this.activeMenu.children(".ui-menu-item").filter(function() {
//                                 return s.test(e(this).children("a").text())
//                             })),
//                             n.length ? (this.focus(t, n),
//                                 n.length > 1 ? (this.previousFilter = o,
//                                     this.filterTimer = this._delay(function() {
//                                         delete this.previousFilter
//                                     }, 1e3)) : delete this.previousFilter) : delete this.previousFilter
//                 }
//                 l && t.preventDefault()
//             },
//             _activate: function(e) {
//                 this.active.is(".ui-state-disabled") || (this.active.children("a[aria-haspopup='true']").length ? this.expand(e) : this.select(e))
//             },
//             refresh: function() {
//                 var t, i = this.options.icons.submenu, n = this.element.find(this.options.menus);
//                 n.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-corner-all").hide().attr({
//                     role: this.options.role,
//                     "aria-hidden": "true",
//                     "aria-expanded": "false"
//                 }).each(function() {
//                     var t = e(this)
//                         , n = t.prev("a")
//                         , a = e("<span>").addClass("ui-menu-icon ui-icon " + i).data("ui-menu-submenu-carat", !0);
//                     n.attr("aria-haspopup", "true").prepend(a),
//                         t.attr("aria-labelledby", n.attr("id"))
//                 }),
//                     (t = n.add(this.element)).children(":not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role", "presentation").children("a").uniqueId().addClass("ui-corner-all").attr({
//                         tabIndex: -1,
//                         role: this._itemRole()
//                     }),
//                     t.children(":not(.ui-menu-item)").each(function() {
//                         var t = e(this);
//                         /[^\-—–\s]/.test(t.text()) || t.addClass("ui-widget-content ui-menu-divider")
//                     }),
//                     t.children(".ui-state-disabled").attr("aria-disabled", "true"),
//                 this.active && !e.contains(this.element[0], this.active[0]) && this.blur()
//             },
//             _itemRole: function() {
//                 return {
//                     menu: "menuitem",
//                     listbox: "option"
//                 }[this.options.role]
//             },
//             focus: function(e, t) {
//                 var i, n;
//                 this.blur(e, e && "focus" === e.type),
//                     this._scrollIntoView(t),
//                     this.active = t.first(),
//                     n = this.active.children("a").addClass("ui-state-focus"),
//                 this.options.role && this.element.attr("aria-activedescendant", n.attr("id")),
//                     this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active"),
//                     e && "keydown" === e.type ? this._close() : this.timer = this._delay(function() {
//                         this._close()
//                     }, this.delay),
//                 (i = t.children(".ui-menu")).length && /^mouse/.test(e.type) && this._startOpening(i),
//                     this.activeMenu = t.parent(),
//                     this._trigger("focus", e, {
//                         item: t
//                     })
//             },
//             _scrollIntoView: function(t) {
//                 var i, n, a, o, r, s;
//                 this._hasScroll() && (i = parseFloat(e.css(this.activeMenu[0], "borderTopWidth")) || 0,
//                     n = parseFloat(e.css(this.activeMenu[0], "paddingTop")) || 0,
//                     a = t.offset().top - this.activeMenu.offset().top - i - n,
//                     o = this.activeMenu.scrollTop(),
//                     r = this.activeMenu.height(),
//                     s = t.height(),
//                     a < 0 ? this.activeMenu.scrollTop(o + a) : a + s > r && this.activeMenu.scrollTop(o + a - r + s))
//             },
//             blur: function(e, t) {
//                 t || clearTimeout(this.timer),
//                 this.active && (this.active.children("a").removeClass("ui-state-focus"),
//                     this.active = null,
//                     this._trigger("blur", e, {
//                         item: this.active
//                     }))
//             },
//             _startOpening: function(e) {
//                 clearTimeout(this.timer),
//                 "true" === e.attr("aria-hidden") && (this.timer = this._delay(function() {
//                     this._close(),
//                         this._open(e)
//                 }, this.delay))
//             },
//             _open: function(t) {
//                 var i = e.extend({
//                     of: this.active
//                 }, this.options.position);
//                 clearTimeout(this.timer),
//                     this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden", "true"),
//                     t.show().removeAttr("aria-hidden").attr("aria-expanded", "true").position(i)
//             },
//             collapseAll: function(t, i) {
//                 clearTimeout(this.timer),
//                     this.timer = this._delay(function() {
//                         var n = i ? this.element : e(t && t.target).closest(this.element.find(".ui-menu"));
//                         n.length || (n = this.element),
//                             this._close(n),
//                             this.blur(t),
//                             this.activeMenu = n
//                     }, this.delay)
//             },
//             _close: function(e) {
//                 e || (e = this.active ? this.active.parent() : this.element),
//                     e.find(".ui-menu").hide().attr("aria-hidden", "true").attr("aria-expanded", "false").end().find("a.ui-state-active").removeClass("ui-state-active")
//             },
//             collapse: function(e) {
//                 var t = this.active && this.active.parent().closest(".ui-menu-item", this.element);
//                 t && t.length && (this._close(),
//                     this.focus(e, t))
//             },
//             expand: function(e) {
//                 var t = this.active && this.active.children(".ui-menu ").children(".ui-menu-item").first();
//                 t && t.length && (this._open(t.parent()),
//                     this._delay(function() {
//                         this.focus(e, t)
//                     }))
//             },
//             next: function(e) {
//                 this._move("next", "first", e)
//             },
//             previous: function(e) {
//                 this._move("prev", "last", e)
//             },
//             isFirstItem: function() {
//                 return this.active && !this.active.prevAll(".ui-menu-item").length
//             },
//             isLastItem: function() {
//                 return this.active && !this.active.nextAll(".ui-menu-item").length
//             },
//             _move: function(e, t, i) {
//                 var n;
//                 this.active && (n = "first" === e || "last" === e ? this.active["first" === e ? "prevAll" : "nextAll"](".ui-menu-item").eq(-1) : this.active[e + "All"](".ui-menu-item").eq(0)),
//                 n && n.length && this.active || (n = this.activeMenu.children(".ui-menu-item")[t]()),
//                     this.focus(i, n)
//             },
//             nextPage: function(t) {
//                 var i, n, a;
//                 this.active ? this.isLastItem() || (this._hasScroll() ? (n = this.active.offset().top,
//                     a = this.element.height(),
//                     this.active.nextAll(".ui-menu-item").each(function() {
//                         return (i = e(this)).offset().top - n - a < 0
//                     }),
//                     this.focus(t, i)) : this.focus(t, this.activeMenu.children(".ui-menu-item")[this.active ? "last" : "first"]())) : this.next(t)
//             },
//             previousPage: function(t) {
//                 var i, n, a;
//                 this.active ? this.isFirstItem() || (this._hasScroll() ? (n = this.active.offset().top,
//                     a = this.element.height(),
//                     this.active.prevAll(".ui-menu-item").each(function() {
//                         return (i = e(this)).offset().top - n + a > 0
//                     }),
//                     this.focus(t, i)) : this.focus(t, this.activeMenu.children(".ui-menu-item").first())) : this.next(t)
//             },
//             _hasScroll: function() {
//                 return this.element.outerHeight() < this.element.prop("scrollHeight")
//             },
//             select: function(t) {
//                 this.active = this.active || e(t.target).closest(".ui-menu-item");
//                 var i = {
//                     item: this.active
//                 };
//                 this.active.has(".ui-menu").length || this.collapseAll(t, !0),
//                     this._trigger("select", t, i)
//             }
//         })
//     }(jQuery),
//     function(e, t) {
//         var i = 0;
//         e.widget("ui.autocomplete", {
//             version: "1.9.2",
//             defaultElement: "<input>",
//             options: {
//                 appendTo: "body",
//                 autoFocus: !1,
//                 delay: 300,
//                 minLength: 1,
//                 position: {
//                     my: "left top",
//                     at: "left bottom",
//                     collision: "none"
//                 },
//                 source: null,
//                 change: null,
//                 close: null,
//                 focus: null,
//                 open: null,
//                 response: null,
//                 search: null,
//                 select: null
//             },
//             pending: 0,
//             _create: function() {
//                 var t, i, n;
//                 this.isMultiLine = this._isMultiLine(),
//                     this.valueMethod = this.element[this.element.is("input,textarea") ? "val" : "text"],
//                     this.isNewMenu = !0,
//                     this.element.addClass("ui-autocomplete-input").attr("autocomplete", "off"),
//                     this._on(this.element, {
//                         keydown: function(a) {
//                             if (this.element.prop("readOnly"))
//                                 return t = !0,
//                                     n = !0,
//                                     void (i = !0);
//                             t = !1,
//                                 n = !1,
//                                 i = !1;
//                             var o = e.ui.keyCode;
//                             switch (a.keyCode) {
//                                 case o.PAGE_UP:
//                                     t = !0,
//                                         this._move("previousPage", a);
//                                     break;
//                                 case o.PAGE_DOWN:
//                                     t = !0,
//                                         this._move("nextPage", a);
//                                     break;
//                                 case o.UP:
//                                     t = !0,
//                                         this._keyEvent("previous", a);
//                                     break;
//                                 case o.DOWN:
//                                     t = !0,
//                                         this._keyEvent("next", a);
//                                     break;
//                                 case o.ENTER:
//                                 case o.NUMPAD_ENTER:
//                                     this.menu.active && (t = !0,
//                                         a.preventDefault(),
//                                         this.menu.select(a));
//                                     break;
//                                 case o.TAB:
//                                     this.menu.active && this.menu.select(a);
//                                     break;
//                                 case o.ESCAPE:
//                                     this.menu.element.is(":visible") && (this._value(this.term),
//                                         this.close(a),
//                                         a.preventDefault());
//                                     break;
//                                 default:
//                                     i = !0,
//                                         this._searchTimeout(a)
//                             }
//                         },
//                         keypress: function(n) {
//                             if (t)
//                                 return t = !1,
//                                     void n.preventDefault();
//                             if (!i) {
//                                 var a = e.ui.keyCode;
//                                 switch (n.keyCode) {
//                                     case a.PAGE_UP:
//                                         this._move("previousPage", n);
//                                         break;
//                                     case a.PAGE_DOWN:
//                                         this._move("nextPage", n);
//                                         break;
//                                     case a.UP:
//                                         this._keyEvent("previous", n);
//                                         break;
//                                     case a.DOWN:
//                                         this._keyEvent("next", n)
//                                 }
//                             }
//                         },
//                         input: function(e) {
//                             if (n)
//                                 return n = !1,
//                                     void e.preventDefault();
//                             this._searchTimeout(e)
//                         },
//                         focus: function() {
//                             this.selectedItem = null,
//                                 this.previous = this._value()
//                         },
//                         blur: function(e) {
//                             this.cancelBlur ? delete this.cancelBlur : (clearTimeout(this.searching),
//                                 this.close(e),
//                                 this._change(e))
//                         }
//                     }),
//                     this._initSource(),
//                     this.menu = e("<ul>").addClass("ui-autocomplete").appendTo(this.document.find(this.options.appendTo || "body")[0]).menu({
//                         input: e(),
//                         role: null
//                     }).zIndex(this.element.zIndex() + 1).hide().data("menu"),
//                     this._on(this.menu.element, {
//                         mousedown: function(t) {
//                             t.preventDefault(),
//                                 this.cancelBlur = !0,
//                                 this._delay(function() {
//                                     delete this.cancelBlur
//                                 });
//                             var i = this.menu.element[0];
//                             e(t.target).closest(".ui-menu-item").length || this._delay(function() {
//                                 var t = this;
//                                 this.document.one("mousedown", function(n) {
//                                     n.target !== t.element[0] && n.target !== i && !e.contains(i, n.target) && t.close()
//                                 })
//                             })
//                         },
//                         menufocus: function(t, i) {
//                             if (this.isNewMenu && (this.isNewMenu = !1,
//                             t.originalEvent && /^mouse/.test(t.originalEvent.type)))
//                                 return this.menu.blur(),
//                                     void this.document.one("mousemove", function() {
//                                         e(t.target).trigger(t.originalEvent)
//                                     });
//                             var n = i.item.data("ui-autocomplete-item") || i.item.data("item.autocomplete");
//                             !1 !== this._trigger("focus", t, {
//                                 item: n
//                             }) ? t.originalEvent && /^key/.test(t.originalEvent.type) && this._value(n.value) : this.liveRegion.text(n.value)
//                         },
//                         menuselect: function(e, t) {
//                             var i = t.item.data("ui-autocomplete-item") || t.item.data("item.autocomplete")
//                                 , n = this.previous;
//                             this.element[0] !== this.document[0].activeElement && (this.element.focus(),
//                                 this.previous = n,
//                                 this._delay(function() {
//                                     this.previous = n,
//                                         this.selectedItem = i
//                                 })),
//                             !1 !== this._trigger("select", e, {
//                                 item: i
//                             }) && this._value(i.value),
//                                 this.term = this._value(),
//                                 this.close(e),
//                                 this.selectedItem = i
//                         }
//                     }),
//                     this.liveRegion = e("<span>", {
//                         role: "status",
//                         "aria-live": "polite"
//                     }).addClass("ui-helper-hidden-accessible").insertAfter(this.element),
//                 e.fn.bgiframe && this.menu.element.bgiframe(),
//                     this._on(this.window, {
//                         beforeunload: function() {
//                             this.element.removeAttr("autocomplete")
//                         }
//                     })
//             },
//             _destroy: function() {
//                 clearTimeout(this.searching),
//                     this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),
//                     this.menu.element.remove(),
//                     this.liveRegion.remove()
//             },
//             _setOption: function(e, t) {
//                 this._super(e, t),
//                 "source" === e && this._initSource(),
//                 "appendTo" === e && this.menu.element.appendTo(this.document.find(t || "body")[0]),
//                 "disabled" === e && t && this.xhr && this.xhr.abort()
//             },
//             _isMultiLine: function() {
//                 return !!this.element.is("textarea") || !this.element.is("input") && this.element.prop("isContentEditable")
//             },
//             _initSource: function() {
//                 var t, i, n = this;
//                 e.isArray(this.options.source) ? (t = this.options.source,
//                         this.source = function(i, n) {
//                             n(e.ui.autocomplete.filter(t, i.term))
//                         }
//                 ) : "string" == typeof this.options.source ? (i = this.options.source,
//                         this.source = function(t, a) {
//                             n.xhr && n.xhr.abort(),
//                                 n.xhr = e.ajax({
//                                     url: i,
//                                     data: t,
//                                     dataType: "json",
//                                     success: function(e) {
//                                         a(e)
//                                     },
//                                     error: function() {
//                                         a([])
//                                     }
//                                 })
//                         }
//                 ) : this.source = this.options.source
//             },
//             _searchTimeout: function(e) {
//                 clearTimeout(this.searching),
//                     this.searching = this._delay(function() {
//                         this.term !== this._value() && (this.selectedItem = null,
//                             this.search(null, e))
//                     }, this.options.delay)
//             },
//             search: function(e, t) {
//                 return e = null != e ? e : this._value(),
//                     this.term = this._value(),
//                     e.length < this.options.minLength ? this.close(t) : !1 !== this._trigger("search", t) ? this._search(e) : void 0
//             },
//             _search: function(e) {
//                 this.pending++,
//                     this.element.addClass("ui-autocomplete-loading"),
//                     this.cancelSearch = !1,
//                     this.source({
//                         term: e
//                     }, this._response())
//             },
//             _response: function() {
//                 var e = this
//                     , t = ++i;
//                 return function(n) {
//                     t === i && e.__response(n),
//                         e.pending--,
//                     e.pending || e.element.removeClass("ui-autocomplete-loading")
//                 }
//             },
//             __response: function(e) {
//                 e && (e = this._normalize(e)),
//                     this._trigger("response", null, {
//                         content: e
//                     }),
//                     !this.options.disabled && e && e.length && !this.cancelSearch ? (this._suggest(e),
//                         this._trigger("open")) : this._close()
//             },
//             close: function(e) {
//                 this.cancelSearch = !0,
//                     this._close(e)
//             },
//             _close: function(e) {
//                 this.menu.element.is(":visible") && (this.menu.element.hide(),
//                     this.menu.blur(),
//                     this.isNewMenu = !0,
//                     this._trigger("close", e))
//             },
//             _change: function(e) {
//                 this.previous !== this._value() && this._trigger("change", e, {
//                     item: this.selectedItem
//                 })
//             },
//             _normalize: function(t) {
//                 return t.length && t[0].label && t[0].value ? t : e.map(t, function(t) {
//                     return "string" == typeof t ? {
//                         label: t,
//                         value: t
//                     } : e.extend({
//                         label: t.label || t.value,
//                         value: t.value || t.label
//                     }, t)
//                 })
//             },
//             _suggest: function(t) {
//                 var i = this.menu.element.empty().zIndex(this.element.zIndex() + 1);
//                 this._renderMenu(i, t),
//                     this.menu.refresh(),
//                     i.show(),
//                     this._resizeMenu(),
//                     i.position(e.extend({
//                         of: this.element
//                     }, this.options.position)),
//                 this.options.autoFocus && this.menu.next()
//             },
//             _resizeMenu: function() {
//                 var e = this.menu.element;
//                 e.outerWidth(Math.max(e.width("").outerWidth() + 1, this.element.outerWidth()))
//             },
//             _renderMenu: function(t, i) {
//                 var n = this;
//                 e.each(i, function(e, i) {
//                     n._renderItemData(t, i)
//                 })
//             },
//             _renderItemData: function(e, t) {
//                 return this._renderItem(e, t).data("ui-autocomplete-item", t)
//             },
//             _renderItem: function(t, i) {
//                 return e("<li>").append(e("<a>").text(i.label)).appendTo(t)
//             },
//             _move: function(e, t) {
//                 if (this.menu.element.is(":visible"))
//                     return this.menu.isFirstItem() && /^previous/.test(e) || this.menu.isLastItem() && /^next/.test(e) ? (this._value(this.term),
//                         void this.menu.blur()) : void this.menu[e](t);
//                 this.search(null, t)
//             },
//             widget: function() {
//                 return this.menu.element
//             },
//             _value: function() {
//                 return this.valueMethod.apply(this.element, arguments)
//             },
//             _keyEvent: function(e, t) {
//                 this.isMultiLine && !this.menu.element.is(":visible") || (this._move(e, t),
//                     t.preventDefault())
//             }
//         }),
//             e.extend(e.ui.autocomplete, {
//                 escapeRegex: function(e) {
//                     return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&")
//                 },
//                 filter: function(t, i) {
//                     var n = new RegExp(e.ui.autocomplete.escapeRegex(i),"i");
//                     return e.grep(t, function(e) {
//                         return n.test(e.label || e.value || e)
//                     })
//                 }
//             }),
//             e.widget("ui.autocomplete", e.ui.autocomplete, {
//                 options: {
//                     messages: {
//                         noResults: "No search results.",
//                         results: function(e) {
//                             return e + (e > 1 ? " results are" : " result is") + " available, use up and down arrow keys to navigate."
//                         }
//                     }
//                 },
//                 __response: function(e) {
//                     var t;
//                     this._superApply(arguments),
//                     this.options.disabled || this.cancelSearch || (t = e && e.length ? this.options.messages.results(e.length) : this.options.messages.noResults,
//                         this.liveRegion.text(t))
//                 }
//             })
//     }(jQuery);
// var whitespace = "[\\x20\\t\\r\\n\\f]"
//     , rtrim = new RegExp("^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$","g");
// String.prototype.trim = String.prototype.trim || function() {
//     return this.treplace(rtrim, "")
// }
//     ,
//     Array.prototype.indexOf = function(e) {
//         for (var t = 0; t < this.length; t++)
//             if (this[t] == e)
//                 return t;
//         return -1
//     }
//     ,
// "function" != typeof String.prototype.startWith && (String.prototype.startWith = function(e) {
//         return this.slice(0, e.length) === e
//     }
// ),
// "function" != typeof String.prototype.endWith && (String.prototype.endWith = function(e) {
//         return -1 !== this.indexOf(e, this.length - e.length)
//     }
// );
// var REGX_HTML_ENCODE = /"|&|'|<|>|[\x00-\x20]|[\x7F-\xFF]|[\u0100-\u2700]/g
//     , HTML_DECODE = {
//     "&lt;": "<",
//     "&gt;": ">",
//     "&amp;": "&",
//     "&nbsp;": " ",
//     "&quot;": '"',
//     "&copy;": "©"
// }
//     , REGX_HTML_DECODE = /&\w{1,};|&#\d{1,};/g
//     , pwdMsg = "密码长度为6-24，且只能输入数字、字母和下划线"
//     , emailMsg = "邮箱格式不正确";
// $((window,
//     document,
//     void jQuery.extend({
//         regExpTest: function(e, t) {
//             var i = {
//                 email: "邮箱格式错误",
//                 mobile: "手机格式错误",
//                 letter: "请输入英文字母",
//                 chinese: "请输入中文",
//                 noChinese: "此处不允许输入中文",
//                 number: "请输入正确数字",
//                 numberLimit10: "请输入正确的10位数字",
//                 bankCard: "请输入正确的银行卡号",
//                 idCard: "请输入正确的身份证号码",
//                 creditMonth: "请输入2位的月数",
//                 creditYear: "请输入2位的年数",
//                 creditCvc: "请输入正确的验证码",
//                 creditNumberUSA: "请输入正确的卡号",
//                 mobileCN: "手机格式错误(中国)",
//                 telephone: "座机格式错误",
//                 password: "密码长度必须为6-22位",
//                 registPassword: "密码格式错误",
//                 date: "请选择日期",
//                 flightNum: "请输入正确的航班号码",
//                 hour: "请输入正确的小时",
//                 minute: "请输入正确的分钟",
//                 userName: "用户名格式不正确"
//             };
//             return {
//                 code: {
//                     common: /[\s\S]*/,
//                     chinese: /^[\u4e00-\u9fa5]{1,}$/,
//                     noChinese: /^[^\u4e00-\u9fa5]{0,}$/,
//                     letter: /^[a-zA-Z]+([a-zA-Z]|\s)*$/,
//                     number: /^\d+$/,
//                     numberLimit10: /^\d{10}$/,
//                     bankCard: /^\d{15,19}$/,
//                     idCard: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/,
//                     creditMonth: /^(([0][1-9])|([1][0-2]))$/,
//                     creditYear: /^(\d){1,2}$/,
//                     creditCvc: /^(\d){3,4}$/,
//                     creditNumberUSA: /^(\d){5,19}$/,
//                     email: /^\w+([-.]\w+)*@\w+([-]\w+)*\.(\w+([-]\w+)*\.)*[a-z]{2,3}$/,
//                     password: /^[a-zA-Z0-9]{6,24}$/,
//                     registPassword: /^[0-9a-zA-Z_]{6,22}$/,
//                     mobile: /^1[0-9]{10}$/,
//                     mobileCN: /^1[0-9]{10}$/,
//                     userName: /^[\u4e00-\u9fa50-9a-zA-Z]{1,}$/
//                 }[e].test(t),
//                 msg: i[e]
//             }
//         }
//     })));
// var dragModal = {
//     mouseStartPoint: {
//         left: 0,
//         top: 0
//     },
//     mouseEndPoint: {
//         left: 0,
//         top: 0
//     },
//     mouseDragDown: !1,
//     basePoint: {
//         left: 0,
//         top: 0
//     },
//     moveTarget: null,
//     topleng: 0
// };
// $(document).on("mousedown", ".modal-header", function(e) {
//     $("body").addClass("select"),
//         document.body.onselectstart = document.body.ondrag = function() {
//             return !1
//         }
//         ,
//     $(e.target).hasClass("close") || (dragModal.mouseDragDown = !0,
//         dragModal.moveTarget = $(this).parent().parent(),
//         dragModal.mouseStartPoint = {
//             left: e.clientX,
//             top: e.pageY
//         },
//         dragModal.basePoint = dragModal.moveTarget.offset(),
//         dragModal.topLeng = e.pageY - e.clientY)
// }),
//     $(document).on("mouseup", function(e) {
//         dragModal.mouseDragDown = !1,
//             dragModal.moveTarget = void 0,
//             dragModal.mouseStartPoint = {
//                 left: 0,
//                 top: 0
//             },
//             dragModal.basePoint = {
//                 left: 0,
//                 top: 0
//             }
//     }),
//     $(document).on("mousemove", function(e) {
//         if (dragModal.mouseDragDown && void 0 != dragModal.moveTarget) {
//             var t = e.clientX
//                 , i = e.pageY;
//             t < 0 && (t = 0),
//             i < 0 && (i = 25),
//                 dragModal.mouseEndPoint = {
//                     left: t,
//                     top: i
//                 };
//             var n = dragModal.moveTarget.width()
//                 , a = dragModal.moveTarget.height()
//                 , o = document.body.clientWidth
//                 , r = document.body.clientHeight;
//             dragModal.mouseEndPoint.left < dragModal.mouseStartPoint.left - dragModal.basePoint.left ? dragModal.mouseEndPoint.left = 0 : dragModal.mouseEndPoint.left >= o - n + dragModal.mouseStartPoint.left - dragModal.basePoint.left ? dragModal.mouseEndPoint.left = o - n - 38 : dragModal.mouseEndPoint.left = dragModal.mouseEndPoint.left - (dragModal.mouseStartPoint.left - dragModal.basePoint.left),
//                 dragModal.mouseEndPoint.top - (dragModal.mouseStartPoint.top - dragModal.basePoint.top) < dragModal.topLeng ? dragModal.mouseEndPoint.top = dragModal.topLeng : dragModal.mouseEndPoint.top - dragModal.topLeng > r - a + dragModal.mouseStartPoint.top - dragModal.basePoint.top ? dragModal.mouseEndPoint.top = r - a - 38 + dragModal.topLeng : dragModal.mouseEndPoint.top = dragModal.mouseEndPoint.top - (dragModal.mouseStartPoint.top - dragModal.basePoint.top),
//                 dragModal.moveTarget.offset(dragModal.mouseEndPoint)
//         }
//     }),
//     $(document).on("hidden.bs.modal", ".modal", function(e) {
//         $(".modal-dialog").css({
//             top: "0px",
//             left: "0px"
//         }),
//             $("body").removeClass("select"),
//             document.body.onselectstart = document.body.ondrag = null
//     });
// var trHlClass = "hl-tr"
//     , fieldsTableId = "fields-table";
// $(document).ready(function() {});
// var $currTr, currFieldConfig, storageType = 1, fileConfigId, mutiPagerSwitch = !1, extratorEdited = !1, descriptionSelector = '//meta[@name="description"]', keywordsSelector = '//meta[@name="keywords"]', idOrder = 0, iconSuc = "ace-icon fa fa-check green bigger-110", iconMeta = "green ace-icon fa fa-info-circle", iconWarn = "ace-icon fa fa-info-circle orange", allFieldConfigs = {}, fieldConfigObj = {
//     id: "",
//     name: "",
//     required: !1,
//     useHtml: !1,
//     useOuterHtml: !1,
//     useLink: !1,
//     mutiValue: !1,
//     isMeta: !1,
//     selectors: "",
//     fieldValues: [],
//     defaultValue: "",
//     valueType: "text",
//     attrName: "",
//     matchRegex: "",
//     matchReplace: "",
//     matchGp: "",
//     matchSplit: "",
//     replaces: [],
//     dataDealVos: [],
//     cleanHtml: !1,
//     keepAlt: 0,
//     htmlEles: "",
//     groupSelect: !0,
//     fileSaveType: 0,
//     fileTypes: "1",
//     fileUrlPattern: "",
//     concatDelimiter: "",
//     useImg: !1,
//     imgAttr: "",
//     delaTxt: 0,
//     dela: 0,
//     delAs: "",
//     delAllImg: 0,
//     delImg: "",
//     delBlank: 0,
//     pType: 0,
//     preTxt: "",
//     tailTxt: "",
//     randType: 0,
//     minRd: 0,
//     maxRd: 0,
//     minRdtStr: "",
//     maxRdtStr: "",
//     timeFmt: "",
//     txtRd: "",
//     mutiPage: 0,
//     pageMode: 1,
//     pageSelector: "",
//     pageSave: 1,
//     pageConcat: "",
//     maxPage: 0,
//     maxCrawl: 0,
//     urlContain: "",
//     lenType: 0,
//     lenLimit: 0,
//     filterType: 1,
//     noInclude: "",
//     mustInclude: "",
//     renameFile: !0
// }, replaceDto = {
//     from: "",
//     to: "",
//     sortNo: 0
// }, fileDownConfig = {
//     httpPrefix: "",
//     fileTypes: "",
//     fileUrlPattern: "",
//     renameFile: !0
// };
// $(document).ready(function() {
//     $("#xpath-modal").on("shown.bs.modal", function() {
//         ace.vars.touch || $(this).find(".chosen-container").each(function() {
//             $(this).find("a:first-child").css("width", "210px"),
//                 $(this).find(".chosen-drop").css("width", "210px"),
//                 $(this).find(".chosen-search input").css("width", "200px")
//         })
//     })
// }),
//     $(document).ready(function() {
//         function e(e) {
//             var t = e.attr("useHtml")
//                 , i = !(!t || "1" != t);
//             addNewRowCommon(e.attr("fieldValue"), i)
//         }
//         function t(e, t) {
//             var i = homeUrl + "/task/extrator/" + e + "/" + taskId;
//             t && (i = i + "?testUrl=" + i),
//                 window.open(i)
//         }
//         function i() {
//             $("#pageUrl").autocomplete({
//                 minLength: 0,
//                 source: function(e, t) {
//                     new RegExp($.ui.autocomplete.escapeRegex(e.term),"i");
//                     t($.map(m, function(t) {
//                         var i = t;
//                         if (!e.term || i)
//                             return {
//                                 label: i.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + $.ui.autocomplete.escapeRegex(e.term) + ")(?![^<>]*>)(?![^&;]+;)","gi"), "$1"),
//                                 value: i,
//                                 option: this
//                             }
//                     }))
//                 },
//                 select: function(e, t) {
//                     var i = t.item.value;
//                     $(this).val(i),
//                         loadUrl()
//                 }
//             }).focus(function() {
//                 $(this).autocomplete("search")
//             })
//         }
//         function n() {
//             var e = {
//                 pageType: parseInt($("#pageType").val()),
//                 taskId: taskId
//             };
//             $.ajax({
//                 url: homeUrl + "/task/loadConfigUrls",
//                 data: e,
//                 async: !0,
//                 success: function(e) {
//                     1 == e.rs ? e.data && (m = r(e.data)) && m.length > 0 && (m.push("注意，这里是测试用，自动给出的可能只是部分相关网址。"),
//                         i(),
//                     $("#pageUrl").val() || ($("#pageUrl").val(m[0]),
//                         loadUrl())) : showMsgErr(e.msg)
//                 }
//             })
//         }
//         function a() {
//             var e = {
//                 pageType: parseInt($("#pageType").val()),
//                 taskId: taskId
//             };
//             $.ajax({
//                 url: homeUrl + "/task/xsite/loadConfigUrls",
//                 data: e,
//                 async: !0,
//                 success: function(e) {
//                     1 == e.rs ? e.data && (m = r(e.data)) && m.length > 0 && (m.push("注意，这里是测试用，自动给出的是最后采集到的数据的网址。"),
//                         i(),
//                     $("#pageUrl").val() || $("#pageUrl").val(m[0])) : showMsgErr(e.msg)
//                 }
//             })
//         }
//         function o(e, t) {
//             return $.inArray(t, e) >= 0
//         }
//         function r(e) {
//             var t = [];
//             if (!e || 0 == e.length)
//                 return t;
//             for (var i = 0, n = 0, a = e.length; n < a; n++) {
//                 var r = e[n]
//                     , l = {};
//                 (l = jsonClone(v)).urlType = r.urlType,
//                     l.url = r.url,
//                     l.valueType = r.valueType,
//                     l.listValues = r.listValues,
//                     l.start = r.start,
//                     l.end = r.end,
//                     l.step = r.step;
//                 var c = s(l);
//                 if (c && c.length > 0)
//                     for (var u = 0, d = c.length; u < d && !(i > 20); u++) {
//                         var h = c[u];
//                         o(t, h) || (t.push(h),
//                             i++)
//                     }
//             }
//             return t
//         }
//         function s(e) {
//             var t = [];
//             return 1 == e.valueType ? t = c(e) : 2 == e.valueType ? t = l(e) : t.push(e.url),
//                 t
//         }
//         function l(e) {
//             var t = [];
//             if (!e.url)
//                 return t;
//             if (e.url.indexOf("#ts_pageNo#") > 0) {
//                 if (!e.listValues)
//                     return t;
//                 var i = e.listValues.split(",");
//                 for (val in i) {
//                     var n = e.url.replace(/#ts_pageNo#/g, i[val]);
//                     t.push(n),
//                         0
//                 }
//             } else
//                 t.push(e.url),
//                     0;
//             return t
//         }
//         function c(e) {
//             var t = [];
//             if (!e.url)
//                 return t;
//             if (e.url.indexOf("#ts_pageNo#") > 0) {
//                 if (e.start >= 0 && e.end >= 0)
//                     for (var i = e.step, n = e.start, a = e.end, o = n; o <= a; ) {
//                         var r = e.url.replace(/#ts_pageNo#/g, o);
//                         t.push(r),
//                             0,
//                             o += i
//                     }
//             } else
//                 t.push(e.url),
//                     0;
//             return t
//         }
//         function u(e) {
//             if (!currFieldConfig || !currFieldConfig.name)
//                 return bootbox.alert("请先选择或定义字段！"),
//                     !1;
//             $("#modal-data-deal").modal("show"),
//             e && ($("li", $("#myConfigTab")).removeClass("active"),
//                 $(".js-" + e).addClass("active"),
//                 $(".tab-pane", $("#tabbableConfig")).removeClass("in active"),
//                 $("#" + e).addClass("in active")),
//                 h()
//         }
//         function d(e) {
//             y && y[0] ? insertAtCursor(y[0], e) : bootbox.alert("请先把光标放入输入框中要插入的位置（“字段前面添加”或“字段后面添加”）！")
//         }
//         function h() {
//             initDataDealValue(),
//                 initDefaultValue(),
//                 initFileDown(),
//                 initReplaces(),
//                 initDataDeals(),
//                 initRegex(),
//                 initSelector(),
//                 initHtmlTags(currFieldConfig.htmlEles)
//         }
//         function f(e) {
//             var t = $("#pageUrl").val();
//             if (!t)
//                 return showMsgErr("典型网址不能为空"),
//                     !1;
//             saveModalDataAllLocal(),
//                 saveAll(!1, !1);
//             var i = {
//                 url: t,
//                 taskId: taskId,
//                 fileSaveType: 2
//             };
//             $.ajax({
//                 url: homeUrl + "/publish/bookmark-crawl",
//                 type: "post",
//                 data: i,
//                 async: !0,
//                 traditional: !0,
//                 dataType: "json",
//                 success: function(e) {
//                     if (1 == e.rs) {
//                         var t = e.data;
//                         if (t) {
//                             var i = homeUrl + "/data/list/" + taskId + "?openDataId=" + t;
//                             window.open(i)
//                         } else
//                             showMsgErr("采集数据为空")
//                     } else
//                         showMsgErr(e.msg)
//                 },
//                 error: function(e, t, i) {
//                     systemErr()
//                 }
//             })
//         }
//         function p() {
//             var e = $("#pageUrl").val();
//             if (!e)
//                 return showMsgErr("已有数据链接不能为空"),
//                     !1;
//             saveModalDataAllLocal(),
//                 saveAll(!1, !1);
//             var t = {
//                 url: e,
//                 taskId: taskId,
//                 fileSaveType: 2
//             };
//             $.ajax({
//                 url: homeUrl + "/task/xsite/testDataDealNow",
//                 type: "post",
//                 data: t,
//                 async: !0,
//                 traditional: !0,
//                 dataType: "json",
//                 success: function(e) {
//                     if (1 == e.rs) {
//                         var t = e.data;
//                         if (t) {
//                             var i = homeUrl + "/data/list/" + taskId + "?openDataId=" + t;
//                             window.open(i)
//                         } else
//                             showMsgErr("采集数据为空")
//                     } else
//                         showMsgErr(e.msg)
//                 },
//                 error: function(e, t, i) {
//                     systemErr()
//                 }
//             })
//         }
//         function g() {
//             var e = $("#pageUrl").val();
//             if (!e)
//                 return showMsgErr("已有数据链接不能为空"),
//                     !1;
//             var t = {
//                 url: e,
//                 taskId: taskId,
//                 fileSaveType: 2
//             };
//             $.ajax({
//                 url: homeUrl + "/task/xsite/showDataByUrl",
//                 type: "post",
//                 data: t,
//                 async: !0,
//                 traditional: !0,
//                 dataType: "json",
//                 success: function(e) {
//                     if (1 == e.rs) {
//                         var t = e.data;
//                         if (t) {
//                             var i = homeUrl + "/data/list/" + taskId + "?openDataId=" + t;
//                             window.open(i)
//                         } else
//                             showMsgErr("该URL数据不存在或已删除")
//                     } else
//                         showMsgErr(e.msg)
//                 },
//                 error: function(e, t, i) {
//                     systemErr()
//                 }
//             })
//         }
//         isConfiger ? a() : n(),
//             initStart(),
//         isConfiger && h(),
//             hideHtmlConfig(),
//             $(".js-save-all").on("click", function() {
//                 isConfiger && saveModalDataAllLocal(),
//                     saveAll()
//             }),
//             $(".js-save-all-colse").on("click", function() {
//                 isConfiger && saveModalDataAllLocal(),
//                     saveAll(!0)
//             }),
//             $(".js-save-all-modal").on("click", function() {
//                 saveModalDataAllLocal(),
//                     saveAll()
//             }),
//             $("#cssQueryTestBtn").on("click", function() {
//                 cssQueryTest()
//             }),
//             $("#js-load-url").on("click", function() {
//                 loadUrl()
//             }),
//             $(".js-open-url").on("click", function() {
//                 var e = $("#pageUrl").val();
//                 if (!e)
//                     return showMsgErr("典型网址不能为空"),
//                         !1;
//                 window.open(e)
//             }),
//             $("#pageUrl").keyup(function(e) {
//                 13 == e.keyCode && loadUrl()
//             }),
//             $(".js-show-all-data").on("click", function() {
//                 showAllData()
//             }),
//             $("#js-addRow").on("click", function() {
//                 checkPageType() && addNewRow()
//             }),
//             $(".js-addRow").on("click", function() {
//                 checkPageType() && addNewRow()
//             }),
//             $("#js-copyRow").on("click", function() {
//                 checkPageType() && copyRow()
//             }),
//             $("a[name=js-delRow]").on("click", function() {
//                 var e = this
//                     , t = getRowFieldId($(e).closest("tr")[0])
//                     , i = allFieldConfigs[t];
//                 bootbox.confirm("确定要删除字段：" + i.name, function(t) {
//                     t && removeRow(e)
//                 })
//             }),
//             $("#js-delAllRows").on("click", function() {
//                 delAllRows()
//             }),
//             $(".input-field").on("focus change keyup keydown", $("#" + fieldsTableId), function() {
//                 isConfiger || !$(this).attr("readonly") ? (isConfiger && saveModalDataAllLocal(),
//                     dealField(this),
//                     h()) : showMsgErr("该字段值在页面不可见，暂不支持修改，如有需求，可定义新的字段。")
//             }),
//             $(".input-field").on("blur", function() {
//                 dealFieldBlur(this)
//             }),
//             $(".js-open-extrator-detail").on("click", function() {
//                 t(2)
//             }),
//             $(".js-open-extrator-list").on("click", function() {
//                 t(1)
//             }),
//             $(".js-add-field-one").on("click", function() {
//                 e($(this))
//             }),
//             $(".js-add-field-all").on("click", function() {
//                 $("a.js-add-field-one").each(function(t, i) {
//                     e($(this))
//                 })
//             }),
//             $("input[type='checkbox']", $("#config-table,#commonConfig,#filterConfig")).on("click", function() {
//                 dealCheckConfig(this);
//                 var e = $(this).prop("checked");
//                 "useHtml" == $(this).attr("name") ? useHtmlAction(e) : "useLink" == $(this).attr("name") ? (useHtmlAction(e),
//                     useLinkAction(this)) : "mutiValue" == $(this).attr("name") ? mutiValueAction(this) : "useImg" == $(this).attr("name") ? useImgAction(this) : "delaTxt" == $(this).attr("name") || "dela" == $(this).attr("name") || ("mutiPage" == $(this).attr("name") ? mutiPageAction(this) : "dela-keeptxt" == $(this).attr("name") && delaKeepTxt(this)),
//                     showFieldFinalData()
//             }),
//             $("input[type='checkbox']", $("#htmlTagSelectOpt")).on("click", function() {
//                 dealCheckConfig(this),
//                 "useHtml" == $(this).attr("name") && useHtmlAction($(this).prop("checked")),
//                     showFieldFinalData()
//             }),
//             $("#mutiPager-switch").on("click", function() {
//                 switchMutiPagerAll($(this).prop("checked"))
//             });
//         var m = [];
//         $.ui.autocomplete.prototype._renderItem = function(e, t) {
//             var i = this.term.split(" ").join("|")
//                 , n = new RegExp("(" + i + ")","gi")
//                 , a = t.label.replace(n, "<strong>$1</strong>");
//             return $("<li></li>").data("item.autocomplete", t).append("<a>" + a + "</a>").appendTo(e)
//         }
//         ;
//         var v = {
//             id: "",
//             urlType: 2,
//             url: "",
//             paraName: "#ts_pageNo#",
//             valueType: 1,
//             listValues: "",
//             start: 1,
//             end: 1,
//             step: 1,
//             addZero: !1,
//             orderBy: "asc"
//         };
//         $("#conf-xpath").on("click", function() {
//             u("confXpath")
//         }),
//             $("a[name='conf-xpath'").on("click", function() {
//                 u("confXpath")
//             }),
//             $(".js-data-deal-more").on("click", function() {
//                 u()
//             }),
//             $("a[name=conf-data-deal-more]").on("click", function() {
//                 $tr = $(this).closest("tr")[0],
//                     switchFieldByTr($tr),
//                     u()
//             }),
//             $(".input-field").on("dblclick", function() {
//                 if (!isConfiger) {
//                     if ($(this).attr("readonly"))
//                         return void bootbox.alert("该字段值在页面不可见，但服务器可以处理。");
//                     u()
//                 }
//             }),
//             $(".js-save-field-all-temp").on("click", function() {
//                 saveModalDataAllLocal(),
//                     showMsgSuc(localSaveMsg)
//             }),
//             $(".js-crawl-url-now").on("click", function() {
//                 f()
//             }),
//             $(".js-crawl-url-now-modal").on("click", function() {
//                 f()
//             }),
//             $(".js-test-dataDeal-now").on("click", function() {
//                 p()
//             }),
//             $(".js-showDataByUrl").on("click", function() {
//                 g()
//             }),
//             $(".js-conf-input-field").on("blur", function() {
//                 saveModalDataAllLocal()
//             }),
//             $("#xpathValue").on("blur", function() {
//                 saveXpathAndLocation()
//             }),
//             $("#modal-data-deal").on("hide.bs.modal", function() {
//                 saveModalDataAllLocal()
//             }),
//             $(".js-pager-xpathValue").on("focus change keyup keydown", function() {
//                 switchMutiPagerAll(!0)
//             }),
//             $(".js-pager-xpathValue").on("blur", function() {
//                 var e = $("#pageSelector").val();
//                 currFieldConfig.pageSelector = e,
//                     saveCurrFieldConfig()
//             }),
//             $(".js-show-mutiPager-more").on("click", function() {
//                 $("#taskConfig-mutiPage-modal").modal("show"),
//                     initMutiPagrValue()
//             }),
//             $("#taskConfig-mutiPage-modal").on("hide.bs.modal", function() {
//                 saveMutiPagrValue()
//             }),
//             $(".js-fill-huanghang").on("click", function() {
//                 $("#pageConcat").val("<br/>")
//             });
//         var C;
//         $("input[name=from]", $("#replace-table>tbody tr")).on("focus", function() {
//             C = $(this)
//         }),
//             $(".js-fill-regex-fuzzy").on("click", function() {
//                 C && C[0] ? insertAtCursor(C[0], ".*") : bootbox.alert('请先把光标放入输入框中要插入的位置（表格"将字符串"该列）！')
//             });
//         var y;
//         $("textarea", $("#commonDataDeal-form")).on("focus", function() {
//             y = $(this)
//         }),
//             $(".js-fill-paraField-append").on("click", function() {
//                 var e = $(this).attr("fieldPara");
//                 e && d("#[" + e + "]#")
//             }),
//             $(".js-fill-paraField-link-append").on("click", function() {
//                 d('<a href="#[kds_url]#" target="_blank">#[title]#</a>')
//             }),
//             $("#ajaxPage").on("change", function() {
//                 loadUrl()
//             }),
//             $("#save-xpath").on("click", function() {
//                 saveXpathAndLocation()
//             }),
//             $("#test-xpath").on("click", function() {
//                 testXpath()
//             }),
//             $(".js-xpath-test-location").on("click", function() {
//                 testXpathAndLocation()
//             }),
//             $(".js-xpath-select-parent").on("click", function() {
//                 var e = $("#xpathValue").val();
//                 if (e) {
//                     var t = e.split("/");
//                     if (t && t.length > 2) {
//                         var i = t.length
//                             , n = t;
//                         e.endWith("kds") || e.endWith("kds[1]") ? i > 3 && (n = t.slice(0, i - 2)) : n = t.slice(0, i - 1);
//                         var a = n.join("/");
//                         $("#xpathValue").val(a),
//                             saveXpathAndLocation()
//                     } else
//                         bootbox.alert("无法再扩大选取区域")
//                 } else
//                     bootbox.alert("未选择区域，请先在页面中点选一个小的区域")
//             }),
//             $(".js-save-xpath").on("click", function() {
//                 saveXpathAndLocation()
//             }),
//             $("#conf-default").on("click", function() {
//                 u("commonConfig")
//             }),
//             $("a[name=conf-default]").on("click", function() {
//                 u("commonConfig")
//             }),
//             $("#save-defaultValue").on("click", function() {
//                 saveDefaultValue()
//             }),
//             $("#conf-regex").on("click", function() {
//                 u("sysRegular")
//             }),
//             $("a[name=conf-regex]").on("click", function() {
//                 u("sysRegular")
//             }),
//             $("a[name=conf-repalces]").on("click", function() {
//                 u("replaces")
//             }),
//             $(".js-save-regex").on("click", function() {
//                 saveRegexAndShow()
//             }),
//             $("#test-regex").on("click", function() {
//                 testRegex(!0)
//             }),
//             $("#test-regex-matchGp").on("click", function() {
//                 testRegexMatchGp(!0)
//             }),
//             $("#js-match-regex").on("blur", function() {
//                 $("#js-match-regex").val() || $("#js-regex-result").html("")
//             }),
//             $("#conf-href").on("click", function() {
//                 modifyHref()
//             }),
//             $("#conf-clear-row").on("click", function() {
//                 cleanRowAction(this)
//             }),
//             $(".js-clear-page-select").on("click", function() {
//                 resetPageSelect()
//             }),
//             $("#groupSelect").on("click", function() {
//                 dealGroupSelect(this)
//             }),
//             $("#pageType").on("change", function() {
//                 setPageType($(this).val())
//             }),
//             $("button[name=selectConfigBtn]").on("click", function() {
//                 selectConfig(this)
//             }),
//             $("a[name=conf-clean-html]").on("click", function() {
//                 cleanHtmlAction(this)
//             }),
//             $("a[name='conf-clean-row']").on("click", function() {
//                 cleanRowAction()
//             }),
//             $("span[data-regex]").on("click", function() {
//                 setDefRegex(this)
//             }),
//             $("span[data-regex-group]").on("click", function() {
//                 setDefRegexGroup(this)
//             }),
//             $(".js-fullscreen").on("click", function() {
//                 launchFullscreen(document.documentElement)
//             }),
//             $(".js-fullscreen-exit").on("click", function() {
//                 exitFullscreen()
//             }),
//             $("a[name=js-replace-addRow]").on("click", function() {
//                 addRowReplace()
//             }),
//             $("a[name=js-replace-delRow]").on("click", function() {
//                 removeRowReplace(this)
//             }),
//             $("a[name=js-adv-addRow]").on("click", function() {
//                 addRowAdv($(this).data("trid"))
//             }),
//             $("a[name=js-adv-delRow]").on("click", function() {
//                 removeRowAdv(this)
//             }),
//             $(".js-taskFtpTab").on("click", function() {
//                 var e = homeUrl + "/task/ftp/" + taskId;
//                 window.open(e)
//             })
//     });
// var localSaveMsg = "本地临时保存成功！注意完成后‘保存’至服务器"
//     , extratorTip = '<div id="ts-select-tips" class="ts-select-tips">提示: 当前字段为：<span id="tip-field-name"></span><br>1.点击可选中数据，再次点击相同数据则取消<br>2.先在左侧选择字段，再点选对应数据<br>3.点击”重置当前字段配置”，可清空所有点选</div>'
//     , dataDealTableId = "adv-deal-table"
//     , advSortNo = 0;
// $(".date-picker").datepicker({
//     autoclose: !0,
//     todayHighlight: !0
// }).next().on(ace.click_event, function() {
//     $(this).prev().focus()
// }),
//     $("input[name=randType]").on("change", function() {
//         changeRandTypeShow($(this).attr("data-show")),
//             changeValueType(),
//             resetFieldIconCurr()
//     }),
//     $("select[name=valueType]").on("change", function() {
//         var e = $("#valueType").val();
//         "attr" == e ? $(".js-attrValue-div").css("display", "block") : $(".js-attrValue-div").css("display", "none");
//         var t = "html" == e;
//         dealCheckBox("useHtml", t),
//             currFieldConfig.useHtml = t,
//             currFieldConfig.valueType = e,
//             showFieldFinalData()
//     }),
//     $("input[name=dela]").on("change", function() {
//         "2" == $(this).val() ? setCheckBoxById("dela-keeptxt", "2") : dealCheckBox("dela-keeptxt", !1)
//     }),
//     $("input[name=dela]").on("change", function() {
//         "2" == $(this).val() && (setCheckBoxById("dela-keeptxt", "2"),
//             dealCheckBox("dela", !1),
//             currFieldConfig.dela = 0)
//     });
// var copyrightTxt = "<p>本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理</p>";
// $(".js-fill-copyright").on("click", function() {
//     var e = $(this).attr("data");
//     $("#tailTxt").val(e),
//         currFieldConfig.tailTxt = $("#tailTxt").val()
// }),
//     $(".js-check-all-htmlTags").click(function() {
//         this.checked ? $("input[name='htmlEleGroup']:checkbox", $(".js-htmlTag-items-div")).each(function() {
//             $(this).prop("checked", !0)
//         }) : $("input[name='htmlEleGroup']:checkbox", $(".js-htmlTag-items-div")).each(function() {
//             $(this).prop("checked", !1)
//         })
//     });
// var keydatasDefaultHtmlTag = ["a", "p", "img", "font", "span", "br", "hr", "kdstag_hx", "kdstag_strong", "kdstag_ul", "kdstag_dl", "kdstag_em", "kdstag_code", "kdstag_subp", "kdstag_block", "kdstag_small", "strike", "kdstag_table"];
// $(".js-htmlTag-reset").click(function() {
//     bootbox.confirm("确定重置为简数默认HTML标签吗?", function(e) {
//         e && initHtmlTags(keydatasDefaultHtmlTag.join(","))
//     })
// });
// var win = "Window";
// $.fn.ownText = function() {
//     return this.eq(0).contents().filter(function() {
//         return 3 === this.nodeType
//     }).map(function() {
//         return this.nodeValue
//     }).get().join("")
// }
// ;
// var myEle = "kds"
//     , idOrder = 0;
// !function(e, t) {
//     "use strict";
//     "function" == typeof define && define.amd ? define(["jquery"], t) : "object" == typeof exports ? module.exports = t(require("jquery")) : e.bootbox = t(e.jQuery)
// }(this, function e(t, i) {
//     "use strict";
//     function n(e) {
//         var t = m[p.locale];
//         return t ? t[e] : m.en[e]
//     }
//     function a(e, i, n) {
//         e.stopPropagation(),
//             e.preventDefault(),
//         t.isFunction(n) && !1 === n.call(i, e) || i.modal("hide")
//     }
//     function o(e) {
//         var t, i = 0;
//         for (t in e)
//             i++;
//         return i
//     }
//     function r(e, i) {
//         var n = 0;
//         t.each(e, function(e, t) {
//             i(e, t, n++)
//         })
//     }
//     function s(e) {
//         var i, n;
//         if ("object" != typeof e)
//             throw new Error("Please supply an object of options");
//         if (!e.message)
//             throw new Error("Please specify a message");
//         return (e = t.extend({}, p, e)).buttons || (e.buttons = {}),
//             i = e.buttons,
//             n = o(i),
//             r(i, function(e, a, o) {
//                 if (t.isFunction(a) && (a = i[e] = {
//                     callback: a
//                 }),
//                 "object" !== t.type(a))
//                     throw new Error("button with key " + e + " must be an object");
//                 a.label || (a.label = e),
//                 a.className || (a.className = 2 >= n && o === n - 1 ? "btn-primary" : "btn-default")
//             }),
//             e
//     }
//     function l(e, t) {
//         var i = e.length
//             , n = {};
//         if (1 > i || i > 2)
//             throw new Error("Invalid argument length");
//         return 2 === i || "string" == typeof e[0] ? (n[t[0]] = e[0],
//             n[t[1]] = e[1]) : n = e[0],
//             n
//     }
//     function c(e, i, n) {
//         return t.extend(!0, {}, e, l(i, n))
//     }
//     function u(e, t, i, n) {
//         return h(c({
//             className: "bootbox-" + e,
//             buttons: d.apply(null, t)
//         }, n, i), t)
//     }
//     function d() {
//         for (var e = {}, t = 0, i = arguments.length; i > t; t++) {
//             var a = arguments[t]
//                 , o = a.toLowerCase()
//                 , r = a.toUpperCase();
//             e[o] = {
//                 label: n(r)
//             }
//         }
//         return e
//     }
//     function h(e, t) {
//         var n = {};
//         return r(t, function(e, t) {
//             n[t] = !0
//         }),
//             r(e.buttons, function(e) {
//                 if (n[e] === i)
//                     throw new Error("button key " + e + " is not allowed (options are " + t.join("\n") + ")")
//             }),
//             e
//     }
//     var f = {
//         dialog: "<div class='bootbox modal' tabindex='-1' role='dialog'><div class='modal-dialog'><div class='modal-content'><div class='modal-body'><div class='bootbox-body'></div></div></div></div></div>",
//         header: "<div class='modal-header'><h4 class='modal-title'></h4></div>",
//         footer: "<div class='modal-footer'></div>",
//         closeButton: "<button type='button' class='bootbox-close-button close' data-dismiss='modal' aria-hidden='true'>&times;</button>",
//         form: "<form class='bootbox-form'></form>",
//         inputs: {
//             text: "<input class='bootbox-input bootbox-input-text form-control' autocomplete=off type=text />",
//             textarea: "<textarea class='bootbox-input bootbox-input-textarea form-control'></textarea>",
//             email: "<input class='bootbox-input bootbox-input-email form-control' autocomplete='off' type='email' />",
//             select: "<select class='bootbox-input bootbox-input-select form-control'></select>",
//             checkbox: "<div class='checkbox'><label><input class='bootbox-input bootbox-input-checkbox' type='checkbox' /></label></div>",
//             date: "<input class='bootbox-input bootbox-input-date form-control' autocomplete=off type='date' />",
//             time: "<input class='bootbox-input bootbox-input-time form-control' autocomplete=off type='time' />",
//             number: "<input class='bootbox-input bootbox-input-number form-control' autocomplete=off type='number' />",
//             password: "<input class='bootbox-input bootbox-input-password form-control' autocomplete='off' type='password' />"
//         }
//     }
//         , p = {
//         locale: "en",
//         backdrop: "static",
//         animate: !0,
//         className: null,
//         closeButton: !0,
//         show: !0,
//         container: "body"
//     }
//         , g = {};
//     g.alert = function() {
//         var e;
//         if ((e = u("alert", ["ok"], ["message", "callback"], arguments)).callback && !t.isFunction(e.callback))
//             throw new Error("alert requires callback property to be a function when provided");
//         return e.buttons.ok.callback = e.onEscape = function() {
//             return !t.isFunction(e.callback) || e.callback.call(this)
//         }
//             ,
//             g.dialog(e)
//     }
//         ,
//         g.confirm = function() {
//             var e;
//             if (e = u("confirm", ["cancel", "confirm"], ["message", "callback"], arguments),
//                 e.buttons.cancel.callback = e.onEscape = function() {
//                     return e.callback.call(this, !1)
//                 }
//                 ,
//                 e.buttons.confirm.callback = function() {
//                     return e.callback.call(this, !0)
//                 }
//                 ,
//                 !t.isFunction(e.callback))
//                 throw new Error("confirm requires a callback");
//             return g.dialog(e)
//         }
//         ,
//         g.prompt = function() {
//             var e, n, a, o, s, l, u;
//             if (o = t(f.form),
//                 n = {
//                     className: "bootbox-prompt",
//                     buttons: d("cancel", "confirm"),
//                     value: "",
//                     inputType: "text"
//                 },
//                 e = h(c(n, arguments, ["title", "callback"]), ["cancel", "confirm"]),
//                 l = e.show === i || e.show,
//                 e.message = o,
//                 e.buttons.cancel.callback = e.onEscape = function() {
//                     return e.callback.call(this, null)
//                 }
//                 ,
//                 e.buttons.confirm.callback = function() {
//                     var i;
//                     switch (e.inputType) {
//                         case "text":
//                         case "textarea":
//                         case "email":
//                         case "select":
//                         case "date":
//                         case "time":
//                         case "number":
//                         case "password":
//                             i = s.val();
//                             break;
//                         case "checkbox":
//                             var n = s.find("input:checked");
//                             i = [],
//                                 r(n, function(e, n) {
//                                     i.push(t(n).val())
//                                 })
//                     }
//                     return e.callback.call(this, i)
//                 }
//                 ,
//                 e.show = !1,
//                 !e.title)
//                 throw new Error("prompt requires a title");
//             if (!t.isFunction(e.callback))
//                 throw new Error("prompt requires a callback");
//             if (!f.inputs[e.inputType])
//                 throw new Error("invalid prompt type");
//             switch (s = t(f.inputs[e.inputType]),
//                 e.inputType) {
//                 case "text":
//                 case "textarea":
//                 case "email":
//                 case "date":
//                 case "time":
//                 case "number":
//                 case "password":
//                     s.val(e.value);
//                     break;
//                 case "select":
//                     var p = {};
//                     if (u = e.inputOptions || [],
//                         !t.isArray(u))
//                         throw new Error("Please pass an array of input options");
//                     if (!u.length)
//                         throw new Error("prompt with select requires options");
//                     r(u, function(e, n) {
//                         var a = s;
//                         if (n.value === i || n.text === i)
//                             throw new Error("given options in wrong format");
//                         n.group && (p[n.group] || (p[n.group] = t("<optgroup/>").attr("label", n.group)),
//                             a = p[n.group]),
//                             a.append("<option value='" + n.value + "'>" + n.text + "</option>")
//                     }),
//                         r(p, function(e, t) {
//                             s.append(t)
//                         }),
//                         s.val(e.value);
//                     break;
//                 case "checkbox":
//                     var m = t.isArray(e.value) ? e.value : [e.value];
//                     if (!(u = e.inputOptions || []).length)
//                         throw new Error("prompt with checkbox requires options");
//                     if (!u[0].value || !u[0].text)
//                         throw new Error("given options in wrong format");
//                     s = t("<div/>"),
//                         r(u, function(i, n) {
//                             var a = t(f.inputs[e.inputType]);
//                             a.find("input").attr("value", n.value),
//                                 a.find("label").append(n.text),
//                                 r(m, function(e, t) {
//                                     t === n.value && a.find("input").prop("checked", !0)
//                                 }),
//                                 s.append(a)
//                         })
//             }
//             return e.placeholder && s.attr("placeholder", e.placeholder),
//             e.pattern && s.attr("pattern", e.pattern),
//             e.maxlength && s.attr("maxlength", e.maxlength),
//                 o.append(s),
//                 o.on("submit", function(e) {
//                     e.preventDefault(),
//                         e.stopPropagation(),
//                         a.find(".btn-primary").click()
//                 }),
//                 (a = g.dialog(e)).off("shown.bs.modal"),
//                 a.on("shown.bs.modal", function() {
//                     s.focus()
//                 }),
//             !0 === l && a.modal("show"),
//                 a
//         }
//         ,
//         g.dialog = function(e) {
//             e = s(e);
//             var n = t(f.dialog)
//                 , o = n.find(".modal-dialog")
//                 , l = n.find(".modal-body")
//                 , c = e.buttons
//                 , u = ""
//                 , d = {
//                 onEscape: e.onEscape
//             };
//             if (t.fn.modal === i)
//                 throw new Error("$.fn.modal is not defined; please double check you have included the Bootstrap JavaScript library. See http://getbootstrap.com/javascript/ for more details.");
//             if (r(c, function(e, t) {
//                 u += "<button data-bb-handler='" + e + "' type='button' class='btn " + t.className + "'>" + t.label + "</button>",
//                     d[e] = t.callback
//             }),
//                 l.find(".bootbox-body").html(e.message),
//             !0 === e.animate && n.addClass("fade"),
//             e.className && n.addClass(e.className),
//                 "large" === e.size ? o.addClass("modal-lg") : "small" === e.size && o.addClass("modal-sm"),
//             e.title && l.before(f.header),
//                 e.closeButton) {
//                 var h = t(f.closeButton);
//                 e.title ? n.find(".modal-header").prepend(h) : h.css("margin-top", "-10px").prependTo(l)
//             }
//             return e.title && n.find(".modal-title").html(e.title),
//             u.length && (l.after(f.footer),
//                 n.find(".modal-footer").html(u)),
//                 n.on("hidden.bs.modal", function(e) {
//                     e.target === this && n.remove()
//                 }),
//                 n.on("shown.bs.modal", function() {
//                     n.find(".btn-primary:first").focus()
//                 }),
//             "static" !== e.backdrop && n.on("click.dismiss.bs.modal", function(e) {
//                 n.children(".modal-backdrop").length && (e.currentTarget = n.children(".modal-backdrop").get(0)),
//                 e.target === e.currentTarget && n.trigger("escape.close.bb")
//             }),
//                 n.on("escape.close.bb", function(e) {
//                     d.onEscape && a(e, n, d.onEscape)
//                 }),
//                 n.on("click", ".modal-footer button", function(e) {
//                     var i = t(this).data("bb-handler");
//                     a(e, n, d[i])
//                 }),
//                 n.on("click", ".bootbox-close-button", function(e) {
//                     a(e, n, d.onEscape)
//                 }),
//                 n.on("keyup", function(e) {
//                     27 === e.which && n.trigger("escape.close.bb")
//                 }),
//                 t(e.container).append(n),
//                 n.modal({
//                     backdrop: !!e.backdrop && "static",
//                     keyboard: !1,
//                     show: !1
//                 }),
//             e.show && n.modal("show"),
//                 n
//         }
//         ,
//         g.setDefaults = function() {
//             var e = {};
//             2 === arguments.length ? e[arguments[0]] = arguments[1] : e = arguments[0],
//                 t.extend(p, e)
//         }
//         ,
//         g.hideAll = function() {
//             return t(".bootbox").modal("hide"),
//                 g
//         }
//     ;
//     var m = {
//         bg_BG: {
//             OK: "Ок",
//             CANCEL: "Отказ",
//             CONFIRM: "Потвърждавам"
//         },
//         br: {
//             OK: "OK",
//             CANCEL: "Cancelar",
//             CONFIRM: "Sim"
//         },
//         cs: {
//             OK: "OK",
//             CANCEL: "Zrušit",
//             CONFIRM: "Potvrdit"
//         },
//         da: {
//             OK: "OK",
//             CANCEL: "Annuller",
//             CONFIRM: "Accepter"
//         },
//         de: {
//             OK: "OK",
//             CANCEL: "Abbrechen",
//             CONFIRM: "Akzeptieren"
//         },
//         el: {
//             OK: "Εντάξει",
//             CANCEL: "Ακύρωση",
//             CONFIRM: "Επιβεβαίωση"
//         },
//         en: {
//             OK: "OK",
//             CANCEL: "Cancel",
//             CONFIRM: "OK"
//         },
//         es: {
//             OK: "OK",
//             CANCEL: "Cancelar",
//             CONFIRM: "Aceptar"
//         },
//         et: {
//             OK: "OK",
//             CANCEL: "Katkesta",
//             CONFIRM: "OK"
//         },
//         fa: {
//             OK: "قبول",
//             CANCEL: "لغو",
//             CONFIRM: "تایید"
//         },
//         fi: {
//             OK: "OK",
//             CANCEL: "Peruuta",
//             CONFIRM: "OK"
//         },
//         fr: {
//             OK: "OK",
//             CANCEL: "Annuler",
//             CONFIRM: "D'accord"
//         },
//         he: {
//             OK: "אישור",
//             CANCEL: "ביטול",
//             CONFIRM: "אישור"
//         },
//         hu: {
//             OK: "OK",
//             CANCEL: "Mégsem",
//             CONFIRM: "Megerősít"
//         },
//         hr: {
//             OK: "OK",
//             CANCEL: "Odustani",
//             CONFIRM: "Potvrdi"
//         },
//         id: {
//             OK: "OK",
//             CANCEL: "Batal",
//             CONFIRM: "OK"
//         },
//         it: {
//             OK: "OK",
//             CANCEL: "Annulla",
//             CONFIRM: "Conferma"
//         },
//         ja: {
//             OK: "OK",
//             CANCEL: "キャンセル",
//             CONFIRM: "確認"
//         },
//         lt: {
//             OK: "Gerai",
//             CANCEL: "Atšaukti",
//             CONFIRM: "Patvirtinti"
//         },
//         lv: {
//             OK: "Labi",
//             CANCEL: "Atcelt",
//             CONFIRM: "Apstiprināt"
//         },
//         nl: {
//             OK: "OK",
//             CANCEL: "Annuleren",
//             CONFIRM: "Accepteren"
//         },
//         no: {
//             OK: "OK",
//             CANCEL: "Avbryt",
//             CONFIRM: "OK"
//         },
//         pl: {
//             OK: "OK",
//             CANCEL: "Anuluj",
//             CONFIRM: "Potwierdź"
//         },
//         pt: {
//             OK: "OK",
//             CANCEL: "Cancelar",
//             CONFIRM: "Confirmar"
//         },
//         ru: {
//             OK: "OK",
//             CANCEL: "Отмена",
//             CONFIRM: "Применить"
//         },
//         sq: {
//             OK: "OK",
//             CANCEL: "Anulo",
//             CONFIRM: "Prano"
//         },
//         sv: {
//             OK: "OK",
//             CANCEL: "Avbryt",
//             CONFIRM: "OK"
//         },
//         th: {
//             OK: "ตกลง",
//             CANCEL: "ยกเลิก",
//             CONFIRM: "ยืนยัน"
//         },
//         tr: {
//             OK: "Tamam",
//             CANCEL: "İptal",
//             CONFIRM: "Onayla"
//         },
//         zh_CN: {
//             OK: "OK",
//             CANCEL: "取消",
//             CONFIRM: "确认"
//         },
//         zh_TW: {
//             OK: "OK",
//             CANCEL: "取消",
//             CONFIRM: "確認"
//         }
//     };
//     return g.addLocale = function(e, i) {
//         return t.each(["OK", "CANCEL", "CONFIRM"], function(e, t) {
//             if (!i[t])
//                 throw new Error("Please supply a translation for '" + t + "'")
//         }),
//             m[e] = {
//                 OK: i.OK,
//                 CANCEL: i.CANCEL,
//                 CONFIRM: i.CONFIRM
//             },
//             g
//     }
//         ,
//         g.removeLocale = function(e) {
//             return delete m[e],
//                 g
//         }
//         ,
//         g.setLocale = function(e) {
//             return g.setDefaults("locale", e)
//         }
//         ,
//         g.init = function(i) {
//             return e(i || t)
//         }
//         ,
//         g
// }),
//     $(document).ready(function() {
//         function e(e) {
//             e || (e = 2),
//                 2 == e ? ($(".js-userIpProxy-div").css("display", "none"),
//                     $("#ipProxyConfigId").val(0)) : 5 == e && $(".js-userIpProxy-div").css("display", "block")
//         }
//         function t() {
//             doAjaxCallBack("/crawlConfig/getUserIpProxyOptions", {
//                 taskId: taskId
//             }, i)
//         }
//         function i(t) {
//             $("#ipProxyConfigId").html("");
//             var i = "";
//             if (i += n(0, "选择自有IP代理"),
//             1 == t.rs) {
//                 var a = t.data;
//                 a && (a.ipProxyOpionts && (i += a.ipProxyOpionts),
//                     checkRadio("ipProxy", a.ipProxy),
//                     e(a.ipProxy),
//                     $("#pageEncoding").val(a.pageEncoding),
//                     $("#userAgent").val(a.userAgent),
//                 a.runConfig && $("#cookies").val(a.runConfig.cookies))
//             } else
//                 bootbox.alert(t.msg);
//             $("#ipProxyConfigId").html(i)
//         }
//         function n(e, t) {
//             return '<option value="' + e + '">' + t + "</option>"
//         }
//         function a() {
//             if (5 == getCheckRadio("ipProxy") && str2Num($("#ipProxyConfigId").val()) <= 0)
//                 return bootbox.alert("请选择自有IP代理，如无可选，请点击‘配置代理’添加！"),
//                     !1;
//             doAjaxCallBack("/task/saveTaskConfig", {
//                 taskId: taskId,
//                 pageEncoding: $("#pageEncoding").val(),
//                 userAgent: $("#userAgent").val(),
//                 cookies: $("#cookies").val(),
//                 ipProxy: getCheckRadio("ipProxy"),
//                 ipProxyConfigId: $("#ipProxyConfigId").val()
//             }, o, "post")
//         }
//         function o(e) {
//             1 == e.rs ? showSaveSuc() : bootbox.alert(e.msg)
//         }
//         $("#startTask-modal").on("shown.bs.modal", function() {
//             t()
//         }),
//             $("input[name=ipProxy]").on("change", function() {
//                 e(getCheckRadio("ipProxy"))
//             }),
//             $(".js-show-askConfig-modal").on("click", function() {
//                 $("#taskConfig-modal").modal("show"),
//                     t()
//             }),
//             $(".js-reload-taskConfig").on("click", function() {
//                 t()
//             }),
//             $(".js-save-TaskConfig").on("click", function() {
//                 a()
//             }),
//             $(".js-userAgent-baidu").on("click", function() {
//                 $("#userAgent").val("Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)")
//             }),
//             $(".js-userAgent-google").on("click", function() {
//                 $("#userAgent").val("Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)")
//             }),
//             $(".js-userAgent-firefox").on("click", function() {
//                 $("#userAgent").val("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0")
//             }),
//             $(".js-userAgent-chrome").on("click", function() {
//                 $("#userAgent").val("Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36")
//             }),
//             $(".js-userAgent-shouji").on("click", function() {
//                 $("#userAgent").val("Mozilla/5.0 (Linux; U; Android 8.1.0; zh-cn; BLA-AL00 Build/HUAWEIBLA-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/8.9 Mobile Safari/537.36")
//             }),
//             $(".js-userAgent-random").on("click", function() {
//                 $("#userAgent").val("")
//             })
//     });
